杭電 1181 變形課

2022-08-03 10:18:10 字數 1316 閱讀 8520

呃......變形課上harry碰到了一點小麻煩,因為他並不像hermione那樣能夠記住所有的咒語而隨意的將乙個棒球變成刺蝟什麼的,但是他發現了變形咒語的乙個統一規律:如果咒語是以a開頭b結尾的乙個單詞,那麼它的作用就恰好是使a物體變成b物體. 

harry已經將他所會的所有咒語都列成了乙個表,他想讓你幫忙計算一下他是否能完成老師的作業,將乙個b(ball)變成乙個m(mouse),你知道,如果他自己不能完成的話,他就只好向hermione請教,並且被迫聽一大堆好好學習的道理. 

測試資料有多組。每組有多行,每行乙個單詞,僅包括小寫字母,是harry所會的所有咒語.數字0表示一組輸入結束. 

如果harry可以完成他的作業,就輸出"yes.",否則就輸出"no."(不要忽略了句號) 

sosoon

river

goes

them

gotmoon

begin

big0

yes.

hint  harry 可以念這個咒語:"big-got-them".

先輸入字串,用新二維陣列c,記錄字串首末字母,c[首字母-'a'][末字母-'a'],並標記為1,找出首字母為b的字串記錄莫字母,然找出以b為首字母的字母串的莫字母為首的字串,用c標記為1,(a~b,b~c,標記c[a][c]=1),再次尋找以b為首字母的字串並省略已經找過的字串。

1 #include2 #include

3#define m 10000

4char

str[m][m];

5int k[m],c[26][26],key[27];6

inti,j;

7int

main()

820 c[str[1][0]-'

a'][str[1][strlen(str[1])-1]-'

a']=1;21

while(scanf("

%s",&str[++i]) && str[i][0] != '0'

)2226 key[1]=1;27

for(j = 0 ; j < 25 ; j++)

2836}37

if(i == 12 || i == 26)38

41for(num= 0 ; num < 26 ; num++)

4247}48

}49if(i == 12

)50 printf("

yes.\n");

51else

52 printf("

no.\n");

53}54 }

杭電1181變形課

變形課 time limit 1000msmemory limit 65536kb64bit io format i64d i64u submit status description 呃.變形課上harry碰到了一點小麻煩,因為他並不像hermione那樣能夠記住所有的咒語而隨意的將乙個棒球變成刺...

杭電oj 1181 變形課(經典dfs)

題目鏈結 據說這道題有很多解法,今天先寫dfs的。對於每乙個字串進行處理,只保留首字母和末位字母,如果兩者相同不保留。然後就是經典的dfs步驟了。include using namespace std int cnt,flag string s struct mgcarr 1000 bool vis...

杭電1811 變形課(dfs)

problem description 呃.變形課上harry碰到了一點小麻煩,因為他並不像hermione那樣能夠記住所有的咒語而隨意的將乙個棒球變成刺蝟什麼的,但是他發現了變形咒語的乙個統一規律 如果咒語是以a開頭b結尾的乙個單詞,那麼它的作用就恰好是使a物體變成b物體.harry已經將他所會的...