變形課杭電1181 深搜,廣搜,並查集

2021-08-07 01:28:30 字數 2071 閱讀 4524

problem description

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

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

input

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

output

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

sample input

so soon

river

goes

them

got

moon

begin

big

0sample output

yes.

我想大家題意都看懂了吧,就是輸入乙個單詞比如sfaffac則表示s可以變成c,則給出一連串的單詞,就有好多種變換的形式,則題目要求給粗的這些變換是否能吧b變換成m………

很明顯這是一道搜尋題,但是後來一想,由於這道題的有點特別,有連續對應性,所以用並查集也是可以的

接下來我就把三種方法全都講一下:

1.廣搜(0ms)

#include

#include

#include

#include

#include

using

namespace

std;

#define n 1000

bool vis[n];//標記是否走過

char str[n][n];

bool flag;//標記

void bfs(int n)

}while(!q.empty())

for(i=0;iif(vis[i])//走過的跳過

continue;

if(str[i][0]==str[a][len])//如果與上乙個末字母相對就放入佇列}}

}int main()

}return

0;}

2.深搜(46ms)

#include

#include

#include

#include

#include

using

namespace

std;

#define n 10010

int vis[n];//深搜的時候一定要標記是否搜過,不然會runtime error(stack_overflow)

char str[n][n];

bool flag;

int k;

void dfs(char n)

vis[i]=1;//標記走過

dfs(str[i][l]); //向下一層搜尋

vis[i]=0;//消除標記}}

return ;

}int main()

}return

0;}

3.並查集(15ms)

#include

#include

#include

#include

#include

using

namespace

std;

#define n 10000

int pre[n];

int find(int x) //著共同的最終boss

int main()

if(pre[2]==pre[13]&&mark1==1&&mark2==1)

printf("yes.\n");

else

printf("no.\n");

}return

0;}

HDU 1181 變形課 廣搜

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

杭電1181變形課

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

杭電 1181 變形課

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