bzoj1299: [LLH邀请赛]巧克力棒 博弈
2015-01-03 23:30
183 查看
先从n根巧克力棒中取出m(m>0)根,使得这m根巧克力棒的xor和为0(也就是把nim游戏的必败状态留给对方),同时使得剩下的n-m根巧克力棒无论怎么取,xor和都不为0。(实际上m就是巧克力棒的xor和为0的最长子序列)。
这么一来,对手就面临一个必败状态的nim游戏。如果他从n-m根中取新的巧克力棒,实际上就是新建一个xor和不为0的nim游戏,这时轮到己方操作只要将这个新的nim游戏取到xor和为0即可。(也就是让对方再次面临所有nim游戏均为必败状态的局面)。
寻找是否有Xor和=0的巧克力棒子序列,直接DFS无压力。
这么一来,对手就面临一个必败状态的nim游戏。如果他从n-m根中取新的巧克力棒,实际上就是新建一个xor和不为0的nim游戏,这时轮到己方操作只要将这个新的nim游戏取到xor和为0即可。(也就是让对方再次面临所有nim游戏均为必败状态的局面)。
寻找是否有Xor和=0的巧克力棒子序列,直接DFS无压力。
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,a[2001]; bool found; int dfs(int x,int used,int now) { if(x==n+1) { if(!now&&used>0)found=1; return 0; } dfs(x+1,used,now); dfs(x+1,used+1,now^a[x]); } int main() { for(int t=1;t<=10;t++) { found=0; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); dfs(1,0,0); if(found)puts("NO"); else puts("YES"); } return 0; }
相关文章推荐
- [BZOJ1299][LLH邀请赛]巧克力棒(dfs+博弈)
- BZOJ 1299 [LLH邀请赛]巧克力棒 博弈(NIM游戏)+构造
- [BZOJ1299] [LLH邀请赛]巧克力棒(博弈Nim游戏)
- bzoj1299: [LLH邀请赛]巧克力棒 简单博弈
- 【bzoj1299】[LLH邀请赛]巧克力棒(博弈论思维题)
- BZOJ1299 [LLH邀请赛]巧克力棒
- 【BZOJ】1299: [LLH邀请赛]巧克力棒
- BZOJ 1299: [LLH邀请赛]巧克力棒 [组合游戏]
- bzoj 1299: [LLH邀请赛]巧克力棒
- bzoj1299 [LLH邀请赛]巧克力棒
- BZOJ1299: [LLH邀请赛]巧克力棒(Nim游戏)
- BZOJ.1299.[LLH邀请赛]巧克力棒(博弈论 Nim)
- bzoj1299: [LLH邀请赛]巧克力棒
- bzoj:1299: [LLH邀请赛]巧克力棒
- 【BZOJ 1299】[LLH邀请赛]巧克力棒 博弈论
- BZOJ1299: [LLH邀请赛]巧克力棒 SG函数 博弈论
- bzoj 1299: [LLH邀请赛]巧克力棒(nim游戏的应用)
- 1299: [LLH邀请赛]巧克力棒
- 1299: [LLH邀请赛]巧克力棒
- bzoj1300: [LLH邀请赛]大数计算器