51 Nod 1430 奇偶遊戲 博弈

2021-07-28 18:42:06 字數 1116 閱讀 2022

基準時間限制:1 秒 空間限制:131072 kb 分值: 160 難度:6級演算法題 收藏 關注

有n個城市,第i個城市有ai個人。daenerys和stannis是兩個惡魔。他們在玩乙個遊戲,他們輪流去破壞城市。每一輪破壞乙個城市並殺光裡面所有的人。直到剩下k個城市為止。

如果最後剩下的總人數是偶數那麼daenerys獲得勝利,否則stannis獲得勝利。

現在給定乙個局面,要求你來判斷一下誰會贏,stannis先出手。

input

單組測試資料。

第一行包含兩個整數n,k (1 ≤ k ≤ n ≤ 2*10^5)表示剛開始的城市數目和最後剩下的城市數目。

第二行有n個整數a1,a2,a3,…,an。 (1 ≤ ai ≤ 10^6),表示每個城市裡面的人數。

output

對於每一組資料輸出勝者。

input示例

3 1

1 2 1

3 1

2 2 1

output示例

stannis

daenerys

/*

博弈.具體討論第k+1個是誰取的.

n==k的時候特判一下.

否則算出每個人的可操作次數.

然後討論就好.

*/#include

#include

#define maxn 10001

using

namespace

std;

int n,k,num1,num0,k0,k1;

int main()

if(n==k)

k1=(n-k+1)/2;

k0=n-k-k1;

if(num1<=k0) printf("daenerys\n");

else

if(num0<=k0&&(num1-num0)&1&&k0!=k1)

else

if(num0<=k0&&(num1-num0)%2==0&&k1==k0)

else

if(num0>k0&&num1>k0&&k1==k0)

else

}return

0;}

51nod 1430 奇偶遊戲

設a aa表示先手總共取的個數,sod ds sodd 表示奇數項的數目,sev en s se ven 表示偶數項的數目。首先我們分析後手取的個數亦為a aa,即n k n kn k為偶數的情況 注意到若後手取最後乙個時,sod d,se ve n 0s s 0 sodd seve n 0,則後手...

51 nod 1069 Nim遊戲(博弈)

1069 nim遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 有n堆石子。a b兩個人輪流拿,a先拿。每次只能從一堆中取若干個,可將一堆全取走,但不可不取,拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出n及每堆石子的數量,問最後誰...

51nod 1066 Bash遊戲 博弈

1066 bash遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 有一堆石子共有n個。a b兩個人輪流拿,a先拿。每次最少拿1顆,最多拿k顆,拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出n和k,問最後誰能贏得比賽。例如n 3,k ...