题目链接:https://vjudge.net/problem/HDU-2999

题意:有N堆石头,两个人交替取,每次只能取连续的k个石子,最后没有石子取得人输。

思路:如果我们每次取靠边的k个,那么转移方程就是sg[i-x],再模拟mex{}即可,如果取得是中间的那么就有可以分成几堆处理了。

 1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 int sg[1010],vis[1010],a[1010];
5 int n,m;
6 void init()
7 {
8 for(int i=1;i<=n;i++) cin>>a[i];
9 sort(a+1,a+1+n);
10 sg[0]=0;
11 for(int i=1;i<=1000;++i)
12 {
13 memset(vis,0,sizeof vis);
14 for(int j=1;j<=n;j++)
15 {
16 if(a[j]>i) break;
17 vis[sg[i-a[j]]]=1;
18 if(i-a[j]>1)
19 {
20 int tot=i-a[j];
21 for(int k=1;k<=tot-1;k++)
22 {
23 vis[sg[k]^sg[tot-k]]=1;
24 }
25 }
26 }
27 int j=0;
28 while(vis[j]) j++;
29 sg[i]=j;
30 }
31 }
32 int main()
33 {
34 while(cin>>n)
35 {
36 int k;
37 init();
38 cin>>m;
39 while(m--)
40 {
41 cin>>k;
42 puts(sg[k]?"1":"2");
43 }
44 }
45 return 0;
46 }

最新文章

  1. AJAX-----14HTML5中新增的API---files
  2. 使用JavaScript判断用户是否为手机设备
  3. Java多线程-新特性-有返回值的线程
  4. http 303 307 302 状态码理解
  5. Treap 模板 poj1442&amp;hdu4557
  6. Node.js初级
  7. JAVA锁的可重入性
  8. CentOS6.5安装elasticsearch+logstash+kibana
  9. 【one day one linux】linux下的软件包管理工具
  10. JavaScript局部变量变量和函数命名提升
  11. 一步步建立 Vue + Cesium 初始化项目
  12. Windows Java安装
  13. (C/C++)区别:数组与指针,指针与引用
  14. DeprecationWarning: Calling an asynchronous function without callback is deprecated. - how to find where the “function:” is?
  15. nodejs xpath
  16. MySQL C 客户端的内存泄漏问题
  17. Win10开启PIN码使用教程
  18. Python 转义符
  19. 个人关于python装饰器的白痴理解
  20. 修改testng源码,添加beforeMethod和afterMethod中的日志到test中(可以不改源码,废弃)

热门文章

  1. 基金术语 All In One
  2. VuePress config All In One
  3. 小程序 web-view
  4. React &amp; CSS Modules &amp; CSS in JS
  5. 比特币市场活跃,VAST发行在即!
  6. C++算法代码——选举学生会
  7. CentOS7安装Mysql并配置远程访问
  8. mybites框架遇到的坑之Mapper.xml文件不要随意加注释和ORA-00911
  9. 程序员如何在VsCode上看基金?
  10. Redis 内存淘汰机制详解