2月4日考試 歡樂鬥地主

2022-03-04 21:32:50 字數 1480 閱讀 4100

歡樂鬥地主

時限:1s

記憶體限制:128mb

題目描述:

ning_mew 最近有玩歡樂鬥地主(不能歧視我菜),腦子再次一熱,就改成了一道很水很水的題。

小 mew 和朋友小 ning 一起玩遊戲,兩個人輪流取紙牌,告訴你一共有 n 張紙牌,每次可以取 1~m 張,每

次小 mew 都可以先手(誰要他巨呢),假設兩個人都是高智商,都只會去取最有可能贏的數量的牌。所以呢想要

問你,小 mew 第一次要取多少張牌才能穩贏~實在穩贏不了,就輸出「she pi guai wu!」(不包括引號)

贏的定義就是取最後一張。_(:3 / )_

讀入格式:

第一行:q(表示讀入 q 行 n 與 m)----->多測

第二至 q+1 行:每行讀入 n,m

輸出格式:

第一至 q 行:每行,如果能穩贏,輸出第一次取的紙牌數量;否則,輸出「she pi guai wu!」(不包括引號)。

樣例輸入:142

樣例輸出:

1樣例解釋:

這還要解釋?

資料範圍:

10%: q<=10

n,m<=100

40%: q<=100

n,m<=1000

60%: q<=1000

n,m<=10000

80%: q<=10000

n,m<=10000

100%: q<=100000 n,m<=1000000

solution:

本題考察數學,實際上是小學奧數的推廣。大家應該都還記得小學奧數中經典的分紙牌的遊戲吧,就是給出54張牌,一次能拿1到4張牌,問先手第一次拿幾張牌能贏。。。答案是先手拿4張牌,這樣剩下50張牌,無論對手拿x張,我拿5-x張,最後一張牌一定是先手拿到。。

。推及到本題,有n張牌,每次最多拿m張,那麼若n%(m+1)==0,則先手必輸(因為無論先手拿x張,後手都能拿到m+1-x張),若n%(m+1)!=0,則先手必贏,策略是先拿n%(m+1)張牌。

**:

1

/*小學奧數中的分紙牌問題,開始還以為是nim遊戲,打了個dp但資料呵呵——by 520

*/2 #include3

#define il inline

4#define ll long long

5using

namespace

std;

6int

n,m,q;

7 il int

gi()815

intmain()

1625

return0;

26 }

2023年2月15日 考試

一如既往的菜。關鍵是轉換的方法 include using namespace std typedef long long ll struct sh bool operator const sh a,const sh b priority queue q int n ll x,y,z x是原數,z暫...

4月2日Debug日記

於是開始找影象的顯示,先被師妹指出沒加waitkey,加上後發現除了srcimage其他還是不能顯示,從參與goodfeaturetotrack的frame1開始,不能顯示,它是由last frame賦給他的,那就顯示last frame,也不顯示。我之前的處理思路是開闢乙個last frame用於...

4月2日BFC布局

說明 label元素用來定義標籤,為頁面上的其他元素指定提示資訊。要將label元素繫結到其他的控制項上,可以將label元素的for屬性設定為與該控制項的id屬性值相同。表單補充 1 單選按鈕組 男 預設選中 女 2 核取方塊組 disabled disabled 禁用 checked check...