ACWing 892 台階 Nim遊戲

2021-10-19 23:08:50 字數 2363 閱讀 4311

有個nn

n級台階,每級台階有若干石子,第i

ii級台階上有a

ia_i

ai​個石子(i≥1

i\ge 1

i≥1)。兩個玩家輪流操作,每個玩家可以從第i

ii級台階上拿任意多個石子放到第i−1

i-1i−

1級台階上,可以全拿但不能不拿。已經拿到地面上的石子不能再拿。無法操作者視為失敗。問先手是否存在必勝策略。

輸入格式:

第一行包含整數n

nn。第二行包含n

nn個整數,其中第i

ii個整數表示第i

ii級台階上的石子數a

ia_i

ai​。

輸出格式:

如果先手方必勝,則輸出「yes」。否則,輸出「no」。

資料範圍:

1 ≤n

≤105

1\le n\le 10^5

1≤n≤1051≤

ai≤1

09

1\le a_i\le 10^9

1≤ai​≤

109我們證明,當a1∧

a3∧.

..∧a

2k−1

≠0

a_1\wedge a_3\wedge ...\wedge a_\ne 0

a1​∧a3

​∧..

.∧a2

k−1​

​=0

時先手有必勝策略。證明如下,首先證明三個結論:

1、首先當所有台階都沒有石子時,是個必敗狀態。這是顯然的;

2、如果a1∧

a3∧.

..∧a

2k−1

≠0

a_1\wedge a_3\wedge ...\wedge a_\ne 0

a1​∧a3

​∧..

.∧a2

k−1​

​=0

,先手總可以適當移動石子,使得移動完之後a1∧

a3∧.

..∧a

2k−1

=0

a_1\wedge a_3\wedge ...\wedge a_= 0

a1​∧a3

​∧..

.∧a2

k−1​

=0;3、如果a1∧

a3∧.

..∧a

2k−1

=0

a_1\wedge a_3\wedge ...\wedge a_= 0

a1​∧a3

​∧..

.∧a2

k−1​

=0,先手無論怎麼移動石子,移動完之後都有a1∧

a3∧.

..∧a

2k−1

≠0

a_1\wedge a_3\wedge ...\wedge a_\ne 0

a1​∧a3

​∧..

.∧a2

k−1​

​=0

。兩者的證明都可以參考經典nim遊戲的證明方法:

由於這個遊戲必然停止,如果一開始a1∧

a3∧.

..∧a

2k−1

≠0

a_1\wedge a_3\wedge ...\wedge a_\ne 0

a1​∧a3

​∧..

.∧a2

k−1​

​=0

,那麼先手總可以適當操作,使得後手永遠都面對a1∧

a3∧.

..∧a

2k−1

=0

a_1\wedge a_3\wedge ...\wedge a_= 0

a1​∧a3

​∧..

.∧a2

k−1​

=0的局面,而當遊戲結束的時候,必敗局面a1=

a2=.

..=a

n=

0a_1=a_2=...=a_n=0

a1​=a2

​=..

.=an

​=0必然是後手遇到的,所以先手有必勝策略。反之,後手有必勝策略。**如下:

#include

using

namespace std;

const

int n =

100010

;int a[n]

;int

main()

cout <<

(res !=0?

"yes"

:"no"

)<< endl;

return0;

}

時間複雜度o(n

)o(n)

o(n)

,空間o(1

)o(1)

o(1)

Acwing 892 台階 Nim遊戲

現在,有乙個n級台階的樓梯,每級台階上都有若干個石子,其中第i級台階上有ai個石子 i 1 兩位玩家輪流操作,每次操作可以從任意一級台階上拿若干個石子放到下一級台階中 不能不拿 已經拿到地面上的石子不能再拿,最後無法進行操作的人視為失敗。問如果兩人都採用最優策略,先手是否必勝。輸入格式 第一行包含整...

第39階台階

小明剛剛看完電影 第39級台階 離開電影院的時候,他數了數禮堂前的台階數,恰好是39級 站在台階前,他突然又想著乙個問題 如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級台階,有多少種不同的上法呢?請你利用計算機的優勢,幫助小明尋...

39階台階問題

39級台階問題 小明看完電影 第39級台階 離開電影院的時候,他數了數視覺的台階數,恰好是39級。站在台階前,他突然又想起乙個問題 如果我每一步只能邁上1個或2個台階,先邁左腳,然後左右交替,最後一步邁右腳,也就是說一共要邁偶數步。那麼,上完39級台階,有多少種不同的上法呢?請利用計算機的優勢,幫助...