微軟程式設計之美大賽傳話遊戲

2022-09-02 18:54:13 字數 1862 閱讀 5638

時間限制: 1000ms 記憶體限制: 256mb

alice和bob還有其他幾位好朋友在一起玩傳話遊戲。這個遊戲是這樣進行的:首先,所有遊戲者按順序站成一排,alice站第一位,bob站最後一位。然後,alice想一句話悄悄告訴第二位遊戲者,第二位遊戲者又悄悄地告訴第三位,第三位又告訴第四位……以此類推,直到倒數第二位告訴bob。兩位遊戲者在傳話中,不能讓其他人聽到,也不能使用肢體動作來解釋。最後,bob把他所聽到的話告訴大家,alice也把她原本所想的話告訴大家。 

由於傳話過程中可能出現一些偏差,遊戲者越多,bob最後聽到的話就與alice所想的越不同。bob聽到的話往往會變成一些很搞笑的東西,所以大家玩得樂此不疲。經過幾輪遊戲後,alice注意到在兩人傳話中,有些詞彙往往會錯誤地變成其他特定的詞彙。alice已經收集到了這樣的乙個詞彙轉化的列表,她想知道她的話傳到bob時會變成什麼樣子,請你寫個程式來幫助她。

輸入包括多組資料。第一行是整數 t,表示有多少組測試資料。每組資料第一行包括兩個整數 n 和 m,分別表示遊戲者的數量和單詞轉化列表長度。隨後有 m 行,每行包含兩個用空格隔開的單詞 a 和 b,表示單詞 a 在傳話中一定會變成 b。輸入資料保證沒有重複的 a。最後一行包含若干個用單個空格隔開的單詞,表示alice所想的句子,句子總長不超過100個字元。所有單詞都只包含小寫字母,並且長度不超過20,同乙個單詞的不同時態被認為是不同的單詞。你可以假定不在列表中的單詞永遠不會變化。

對於每組測試資料,單獨輸出一行「case #c: s」。其中,c 為測試資料編號,s 為bob所聽到的句子。s 的格式與輸入資料中alice所想的句子格式相同。

1 ≤ t ≤ 100

小資料:2 ≤ n ≤ 10, 0 ≤ m ≤ 10 

大資料:2 ≤ n ≤ 100, 0 ≤ m ≤ 100 

樣例輸入

2

4 3ship sheep

sinking thinking

thinking sinking

the ship is sinking

10 5

tidy tiny

tiger liar

tired tire

tire bear

liar bear

a tidy tiger is tired

樣例輸出

case #1: the sheep is thinking

case #2: a tiny bear is bear

view code

1 #include 2 #include 3 #include 4 #include 

5 #include 6 #include 7

using

namespace

std;

8 mapmm;

9char s1[30],s2[30],s[110],*p;

10int

t,m,n;

11void

solve()12

23 cout<

25int

main()

2637

gets(s);

38 printf("

case #%d:

",cnt);

39 p=strtok(s,"");

40solve();

41while((p=strtok(null,"

")))

4246 cout<

48return0;

49 }

傳話遊戲 程式設計之美挑戰賽

題目描述 時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb alice和bob還有其他幾位好朋友在一起玩傳話遊戲。這個遊戲是這樣進行的 首先,所有遊戲者按順序站成一排,alice站第一位,bob站最後一位。然後,alice想一句話悄悄告訴第二位遊戲者,第二位遊戲者又悄悄地告訴第...

2013程式設計之美資格賽 傳話遊戲

時間限制 1000ms 記憶體限制 256mb alice和bob還有其他幾位好朋友在一起玩傳話遊戲。這個遊戲是這樣進行的 首先,所有遊戲者按順序站成一排,alice站第一位,bob站最後一位。然後,alice想一句話悄悄告訴第二位遊戲者,第二位遊戲者又悄悄地告訴第三位,第三位又告訴第四位 以此類推...

2013程式設計之美資格賽 傳話遊戲

時間限制 1000ms 記憶體限制 256mb alice和bob還有其他幾位好朋友在一起玩傳話遊戲。這個遊戲是這樣進行的 首先,所有遊戲者按順序站成一排,alice站第一位,bob站最後一位。然後,alice想一句話悄悄告訴第二位遊戲者,第二位遊戲者又悄悄地告訴第三位,第三位又告訴第四位 以此類推...