hdu 4994 前后有序Nim游戏

来源:互联网 发布:网狐棋牌app源码 编辑:程序博客网 时间:2024/06/03 18:30

http://acm.hdu.edu.cn/showproblem.php?pid=4994

Nim游戏变成从前往后有序的,谁是winner?
如果当前堆数目为1,玩家没有选择,只能取走。遇到到不为1的堆,则当前回合行动者可以选择下次选择的先后手。考虑之后的状态为S,如果S为必败态,则玩家可以取完当前堆,下轮变后手,否则,将当前堆数目变为1,下轮先手。


#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <string>#include <queue>#include <map>#include <iostream>#include <algorithm>using namespace std;#define RD(x) scanf("%d",&x)#define RD2(x,y) scanf("%d%d",&x,&y)#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)#define clr0(x) memset(x,0,sizeof(x))typedef long long LL;int n,x;int main() {int _;RD(_);while(_--){    RD(n);    int ans = 0,x,flag = 0;    for(int i = 0;i < n;++i){            RD(x);            if(x > 1)                flag = 1;            if(!flag)                ans++;    }    if(flag){            if(ans&1)                puts("No");            else                puts("Yes");    }        else{            if(ans&1)                puts("Yes");            else                puts("No");        }}return 0;}


0 0
原创粉丝点击