这个题一看就是nim游戏的变形。每次先手取出巧克力就是新建一个nim,但假如先手取一个为0的而且无论后手怎么取剩下的都无法为零就行了。然后用dfs跑。

题干:

Description

TBL和X用巧克力棒玩游戏。每次一人可以从盒子里取出若干条巧克力棒,或是将一根取出的巧克力棒吃掉正整数长度。TBL先手两人轮流,无法操作的人输。 他们以最佳策略一共进行了10轮(每次一盒)。你能预测胜负吗?
Input 输入数据共20行。 第2i-1行一个正整数Ni,表示第i轮巧克力棒的数目。 第2i行Ni个正整数Li,j,表示第i轮巧克力棒的长度。
Output 输出数据共10行。 每行输出“YES”或“NO”,表示TBL是否会赢。如果胜则输出"NO",否则输出"YES"

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<queue>
#include<algorithm>
#include<cstring>
using namespace std;
#define duke(i,a,n) for(int i = a;i <= n;i++)
#define lv(i,a,n) for(int i = a;i >= n;i--)
#define clean(a) memset(a,0,sizeof(a))
const int INF = << ;
typedef long long ll;
typedef double db;
template <class T>
void read(T &x)
{
char c;
bool op = ;
while(c = getchar(), c < '' || c > '')
if(c == '-') op = ;
x = c - '';
while(c = getchar(), c >= '' && c <= '')
x = x * + c - '';
if(op) x = -x;
}
template <class T>
void write(T x)
{
if(x < ) putchar('-'), x = -x;
if(x >= ) write(x / );
putchar('' + x % );
}
int n,sg[],a[],found;
void dfs(int x,int used,int now)
{
if(x == n + )
{
if(!now && used > ) found = ;
return;
}
dfs(x + ,used,now);
dfs(x + ,used + ,now ^ a[x]);
}
int main()
{
int k = ;
while(k--)
{
memset(sg,-,sizeof(sg));
found = ;
read(n);
duke(i,,n)
read(a[i]);
dfs(,,);
if(found == )
printf("NO\n");
else
printf("YES\n");
}
return ;
}

最新文章

  1. Menu与ActionBar的爱恨情仇
  2. ECMAScript 5中属性的特性值
  3. IE9,10中console对象的bug
  4. Xcode编程环境经验笔记(持续汇总)
  5. APP设计尺寸规范大全,APP界面设计新手教程【官方版】(转)
  6. Java设计模式—生产者消费者模式(阻塞队列实现)
  7. [python 2.7.5] 实现配置文件的读写
  8. Hibernate HQL查询的参数绑定
  9. 拔高你的Java代码质量吧:推荐使用枚举定义常量(转)
  10. 【AC自动机】专题总结
  11. redhat ping不通外网的解决办法
  12. Linux运行C#程序
  13. UVA - 10131Is Bigger Smarter?(DAG上的DP)
  14. 目前所有的ANN神经网络算法大全
  15. Java反射机制示例
  16. 【一天一道LeetCode】#292. Nim Game
  17. 在线数据库表(sql语句)生成java实体类工具
  18. C语言随机点名程序
  19. 系统不支持WP开发
  20. flex布局下, 内容改变 不重新渲染问题

热门文章

  1. Vue-prop
  2. Luogu P3802 小魔女帕琪
  3. CCF201703-2 学生排队 java(100分)
  4. xfce 设在分辨率1920 1080
  5. 【tips】xadmin - django第三方后台管理系统
  6. Pygame游戏开发入门(1)-开发框架
  7. Trie树 hihocoder 1014
  8. Navicat premium连接Oracle报ORA-12541错误
  9. StringBuilder的构造方法
  10. 【hdu 1043】Eight