時間限制: 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 thinkingcase #2: a tiny bear is bear
#include#include以前沒做過acm,乙個空格pe了乙個小時。。。。。。。。。。。。。。。。。蛋碎了#include
#include
using
namespace
std;
intmain()
int itr=0
;
string
ss; getchar();
getline(cin,ss);
string::iterator p=ss.begin();
while(p!=ss.end())
itr=0
; map
::iterator iter;
while(str[itr]!=""
) itr++;
}if(str[itr]==""
)
if(itr>100
)
return0;
else
if(itr>99
)
return0;
itr=0
;
while(str[itr]!=""
) result[k]=result[k].substr(0,result[k].length()-1
); }
for(int i=0;ii)
cout
<
case #
"<1
<
return0;
}
2013程式設計之美資格賽 傳話遊戲
時間限制 1000ms 記憶體限制 256mb alice和bob還有其他幾位好朋友在一起玩傳話遊戲。這個遊戲是這樣進行的 首先,所有遊戲者按順序站成一排,alice站第一位,bob站最後一位。然後,alice想一句話悄悄告訴第二位遊戲者,第二位遊戲者又悄悄地告訴第三位,第三位又告訴第四位 以此類推...
2013程式設計之美資格賽總結
終於可以完成乙個程式比賽的題目了,雖然這次的時間有些長。這是第一次完成,感到真心不錯。廢話不說了,下面說一下這次程式設計之美預選賽的情況。當我在凌晨看到這三個題目時,感覺第乙個還有希望,第二個一點思路沒有,第三個不敢期望。第乙個是詞對變換,感覺不太難。第二道是一種.怎麼說呢,反正是一點思路沒有。第三...
2013程式設計之美 資格賽 總結
今天院裡辦的籃球賽小組賽中與結束了,在眾多給力同學的努力下,我們班總算是沒有以全負戰績收場,身為組織者的我也終於可以鬆口氣了。今天敲不動 了,總結一下最近的題目吧。資格賽的三道題都有些想法,但只對了第一題 看了別人的題解之後發現第二題細節沒有處理好,思路大方向是對的,第三題我的出發點貌似就不對。看題...