acm第二次培訓 A 石頭剪刀布

2021-07-24 14:38:02 字數 775 閱讀 3209

剪刀石頭布是常見的遊戲

。石頭勝剪刀,剪刀勝布,布勝石頭。如果兩個人出拳一樣,則不分勝負。

一天,小a和小

b正好在玩石頭剪刀布。已知他們的出拳都是有週期性規律的,比如:「石頭-布

-石頭-剪刀

-石頭-布

-石頭-剪刀……」,就是以「石頭-布

-石頭-剪刀」為週期不斷迴圈的。請問,小a和小

b比了n輪之後,誰贏的輪數多?

多組輸入,至eof結束。

每組輸入包含三行。

第一行包含三個整數:n,na,nb,分別表示比了n輪,小a出拳的週期長度,小b出拳的週期長度。0 < n,na,nb < 100。

第二行包含na個整數,表示小a出拳的規律。

第三行包含nb個整數,表示小b出拳的規律。

其中,0表示「石頭」,1表示「剪刀」,2表示「布」。相鄰兩個整數之間用單個空格隔開。

每組輸出一行,如果小a贏的輪數多,輸出a;如果小b贏的輪數多,輸出b;如果兩人打平,輸出draw。

10 3 40 2 10 1 0 2b

思路:用for迴圈賦值a的週期和b的週期,然後用for迴圈將剩下的ab陣列賦值完畢(注意如果不把剩下的賦值完畢,可能會出現比的次數超出ab賦值範圍的情況)。最後比較每個a【i】b【i】的值即可。

**:

#include #include #include int bi(a,b)

int main()

return 0;

}

ACM第二次練習 1001

題意 t組測試例項,每組輸入y,輸出x 8 x 4 7 x 3 2 x 2 3 x 6 y。思路 簡單的二分法,首先編寫函式實現輸入x求得上式的值。然後二分法搜尋下即可。感想 最初寫的那個程式總是超時,後來參照c進行了優化才過的,c裡面有些東西還是值得借鑑的。留作檢查超時錯誤 include inc...

ACM第二次練習 1003

題意 輸入n塊派的半徑,m個人,輸出m 1個人能分到的派的最大面積。每個人分到的派都不可以是拼接的,都得是整塊的 思路 首先在計算面積上遇到了問題,不能是3.14,而要用acos 1.0 來表示才夠精確。本題由於不能拼接,所以直接在最大快面積和0之間使用二分來找最大面積就可以了。感想 這個題中間還涉...

ACM第二次練習 1004

題意 已知發射點座標為 0,0 和重力加速度g 9.8,輸入目標的座標 x,y 和初速度v,求能夠擊中目標的最小仰角,如果可以輸出角度,不能輸出 1。思路 直接假設能夠擊中目標,編寫函式列出公式,化成一元二次方程,把公式內的三角函式全部化成tan,然後二分求角度就可以了。感想 第一次遇到跟物理題聯絡...