1. 程式人生 > >【codeforces】【比賽題解】#868 CF Round #438 (Div.1+Div.2)

【codeforces】【比賽題解】#868 CF Round #438 (Div.1+Div.2)

這一 一行 mes 無限 解鎖 col 道路 ces 然而

這次是Div.1+Div.2,所以有7題。

因為時間較早,而且正好趕上訓練,所以機房開黑做。

然而我們都只做了3題。:(。

鏈接。

【A】聲控解鎖

題意:

Arkady的寵物狗Mu-mu有一只手機。它需要朝這個手機吠一個英文單詞密碼(兩個字符長),手機才能解鎖。

Mu-mu的仇敵,Kashtanka想要解鎖Mu-mu的手機,但是它只會說一些兩個字符長的英文單詞。

它想要用某種順序吠出若幹個英文單詞,使得手機能解鎖。告訴Kashtanka它有沒有可能做到這一點。

輸入:

第一行一個兩個字符長的字符串,表示密碼。

第二行一個正整數\(n\;(1\leqslant n\leqslant100)\),表示Kashtanka會說的單詞數量。

接下來\(n\)行,每行一個兩個字符長的字符串,表示Kashtanka會的單詞。

輸出:

YES或NO,表示是否能做到。

題解:

 1 #include<cstdio>
 2 #include<set>
 3 #include<algorithm>
 4 #include<queue>
 5 #include<map>
 6 #define F(i,n) for(int i=1;i<=n;++i)
 7 #define R(i,a,b) for(int i=a;i<=b;++i)
 8 #define dF(i,n) for(int i=n;i>=1;--i)
 9
#define IINF 999999999 10 using namespace std; 11 int n,Ans=0; 12 char a[3]; 13 char st[1001][3]; 14 int h[606],l[606]; 15 int main(){ 16 scanf("%s",a); 17 scanf("%d",&n); 18 F(i,n){ 19 scanf("%s",st[i]); 20 if(st[i][0]==a[0]&&st[i][1]==a[1]) Ans=1; 21 h[st[i][0
]]=1; 22 l[st[i][1]]=1; 23 } 24 if(h[a[1]]&&l[a[0]]) Ans=1; 25 if(Ans==1) puts("YES"); 26 else puts("NO"); 27 return 0; 28 }

【B】和時間賽跑

題意:

你曾經有這樣的經歷嗎?要出一套題,離比賽開始只有8小時了,可是你卻一道題都沒出。

Mr.江有過。但是他真的有一個很不可拒絕的借口:他面對著一個時空悖論,時間和空間互換了位置!

整個宇宙變成了一個巨大的鐘表。時針、分針和秒針靜靜地躺在鐘面上。時間靜止了,鐘表顯示的時間是\(h\)時\(m\)分\(s\)秒。

Mr.江上次和教練談話是\(t_{1}\)時,而比賽在\(t_{2}\)時開始。這意味著Mr.江需要從\(t_{1}\)指針移動到\(\t_{2}\)指針。

但Mr.江在空間上的移動,就意味著Mr.江在現實中的時間上的衰老。但是眾所周知,Mr.江有無限的時間支配,所以我們不需要擔心這個。

如果Mr.江的道路上有指針擋著,他就不能通過。當然,Mr.江可以順時針或逆時針行走。

保證任意一個指針不在整時刻度上。

輸入:

五個數\(h,m,s,t_{1},t_{2}\;(1\leqslant h\leqslant12,0\leqslant m,s\leqslant59,1\leqslant t_{1},t_{2}\leqslant12),t_{1}\neq t_{2}\)。

【codeforces】【比賽題解】#868 CF Round #438 (Div.1+Div.2)