單點時限: 1.0 sec
記憶體限制: 256 mb
現在有一種石頭剪刀布錦標賽。採取 100 局勝負制。對戰 100 局,扣掉平局,誰贏得多誰就取得最終的勝利。
zzz 同學天天玩石頭剪刀布,從而總結出了一套提高石頭剪刀布勝率的方法。這套方法重點在於利用人的心理。石頭剪刀布這三者,你可能覺得你是隨機選擇的,但其實不然。你還是會產生一定的偏向性。在若干局遊戲後,有的人出石頭的頻數會高,有的人出布的頻數會高,還有的人出剪刀的頻數會高。
這點差異其實微乎其微,但卻能成為決定勝負的關鍵。zzz 同學也就是靠著這微乎其微的差異,拿到了石頭剪刀布世界冠軍,攀上人生巔峰。
作為 zzz 同學的室友,你對 zzz 同學出石頭剪刀布的套路掌握得一清二楚。具體如下:
他會根據對方之前已經出過的石頭次數、剪刀次數、布次數,來決定最不利於對方的。比如對方剪刀最多,他一定會出石頭;對方布最多,他一定會出剪刀;對方石頭最多,他一定會出布。
在比賽開始前,他會給石頭剪刀布各分配乙個優先順序,分別為 p,q,r。如果存在兩個一樣多,或三個一樣多,或者乙個都沒出過(剛開局),那麼他會優先選擇優先順序高的。比如說對方出過的剪刀和布一樣多,石頭就比較少,那麼他接下來的選擇一定在石頭和剪刀之間。如果石頭的優先順序為 3,剪刀的優先順序為 2,那麼他就會優先選擇石頭。
zzz 同學是很死板的,他肯定不會違背這套策略。也就是說,一旦你搞到了他即將參加的比賽的優先順序 p,q,r,你基本已經贏了,甚至連這 100 局每局是輸是贏都想好了。
於是你膨脹了。你要去挑戰世界冠軍 zzz。
輸入格式
有且僅有一行,三個整數 p,q,r (=),用空格隔開。
不會有兩個相同的測試點。
輸出格式
輸出 100 行,每行乙個整數,依次為這 100 局你的選擇。
石頭輸出 1,剪刀輸出 2,布輸出 3。
提示此題無樣例。
思路一:第一局可以根據對方的優先權獲勝一局,第二局對方根據第一局你出的拳,確定出拳,這一局你又可以獲勝,第三局你不論對方出什麼,你都出前兩個沒出的。這樣三局兩勝,你出石頭剪刀布的頻率一樣。這時對方又要根據優先順序出拳,三局一迴圈。最終三局兩勝。
思路二:第一局可以根據對方的優先權獲勝一局,第二局對方根據第一局你出的拳,確定出拳,這一局你又可以獲勝。那麼第三局對方判斷有兩個頻率一樣的,根據優先順序出拳必定又會出和第一局出拳一樣,兩局一迴圈,局局你贏。
#include
#include
using
namespace std;
intmain()
if(m==p)
//剪刀
else
//布for
(int i =
0; i <
50;i++
)return0;
}
EOJ 3487 石頭剪刀布的套路
思路 1.遊戲開始時,zzz根據優先順序選擇乙個出拳。你可以根據這個規則勝一局。2.當一局過後,zzz根據你出拳頻率選擇。你抓住這個規則有勝一局。3.由於前兩局出拳一定是不同的,那麼第三局就出沒出現過的那個,讓每種情況頻率一樣,每次三局兩勝,三局過後,由於每種情況出現次數一樣,zzz只好再次根據優先...
1018 石頭剪刀布
現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入第 1 行給出正整數 n 10 5 即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c 代表 錘子 j 代表 剪刀 b 代表 布 第 1 個字母代表甲方,第 2 個代表乙...
1018石頭剪刀布(模擬)
時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 大家應該都會玩 錘子剪刀布 的遊戲 兩人同時給出手勢,勝負規則如圖所示 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入格式 ...