一个标准的NIM游戏 加上一条规则:每堆石子对于每个数目的石子只能被取一次

可以SG打表

dp[i][j]表示现在有i个石子 j是可以取的石子数的状压 第i位为1就表示i个石子没被取过

#include <cstdio>
#include <cstring> bool vis[]; int mex() {
for(int i = ; ; i++) if(!vis[i]) return i;
} int sg[][ << ]; int main()
{
memset(sg, -, sizeof(sg));
for(int i = ; i < ( << ); i++) sg[][i] = ;
for(int i = ; i <= ; i++) {
sg[i][] = ;
for(int j = ; j < ( << ); j++) {
memset(vis, false, sizeof(vis));
for(int k = ; k < i; k++) if((j >> k) & )
vis[sg[i - k - ][j ^ ( << k)]] = true;
sg[i][j] = mex();
}
} for(int i = ; i <= ; i++)
printf("i = %d: sg = %d\n", i, sg[i][( << i) - ]); return ;
}

打表找到规律数X的SG值就是该数最多能被多少个整数划分 即找到最大的Y 使得sum(1~Y)<=X  Y即为数X的SG值

#include<iostream>
#include<cstdio>
using namespace std;
int n,ans;
int main()
{
int i,j,p;
cin>>n;
for(i=;i<=n;i++)
{
scanf("%d",&p);
for(j=;j*(j+)/<=p;j++);
ans^=j-;
}
ans?puts("NO"):puts("YES");
}

最新文章

  1. Ubuntu16.04安装Samba
  2. C#实现WinForm窗体逐渐显示效果
  3. Ajax.ActionLink打开页面之后,表单验证失效
  4. Linux命令笔记(一)
  5. 攻城狮在路上(叁)Linux(二十七)--- 压缩与打包之常见的压缩命令
  6. 重构第29天 去除中间人对象(Remove Middle Man)
  7. Android 解决图片大量下载:软引用必须懂4点
  8. Spark实践的阶段性总结
  9. 解决WebSocket兼容ie浏览器版本问题
  10. Bilibili/DanmakuFlameMaster: Android开源弹幕引擎&#183;烈焰弹幕使 ~ JNI source:Bilibili/NativeBitmapFactory
  11. Windows服务器防火墙配置规范
  12. 看我如何未授权登陆某APP任意用户(token泄露实例)
  13. 万能poi导入功能模板
  14. 【转】[MySQL复制异常]Cannot execute statement: impossible to write to binary log since statement is in row for
  15. oracle EBS上传和下载文件(转)
  16. javascript callee和caller
  17. 复杂度分析 quick sort&amp;merge sort
  18. rocketmq学习
  19. Xcode 7安装KSImageNamed 不启作用
  20. 应用SVN比较文件定位修改

热门文章

  1. Asp.Net Core 自定义验证属性
  2. CTO(技术总监 张王岩 17805272076)之 SSH(安全外壳协议)
  3. plsql中文乱码 显示问号
  4. 《Mysql - 索引(唯一索引和普通索引的选择)Change Buffer 》
  5. Laravel-admin图片本地上传配置问题
  6. Redis的AOF重写脚本
  7. SAS学习笔记43 宏语句
  8. 如何使用JavaScript实现纯前端读取和导出excel文件(转)
  9. hdu 1002 prime 模板
  10. (五)Struts之Action类基础(二)