3487 石頭剪刀布的套路

2021-10-04 10:46:33 字數 1379 閱讀 1884

單點時限: 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 大家應該都會玩 錘子剪刀布 的遊戲 兩人同時給出手勢,勝負規則如圖所示 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入格式 ...