https://vjudge.net/problem/UVALive-7278

题意:

两个人玩游戏,现在有n堆牌,轮到自己时,先在牌堆中选一堆牌,先在牌堆中选择拿走0~k张牌(至少得剩下一张),然后最上面的那张牌的点数是多少,你就还需要在该牌堆拿走多少张牌。

不能拿者输。

思路:
虽然有多堆牌,但是我们可以一堆一堆分析。

用SG函数计算出每一堆的情况,最后异或和即可。

 #include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cstdio>
using namespace std; const int maxn=+; int n,p,k;
int a[maxn];
int SG[maxn];
int vis[maxn]; int main()
{
//freopen("D:\\input.txt", "r", stdin);
while(~scanf("%d%d",&p,&k))
{
int pre=;
for(int kase=;kase<p;kase++)
{
memset(SG,,sizeof(SG));
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
if(a[]==) SG[]=;
else SG[]=; for(int i=;i<=n;i++)
{
memset(vis,,sizeof(vis));
for(int j=;j<=k && i-j>;j++)
{
if(i-j-a[i-j]>=)
vis[SG[i-j-a[i-j]]]=;
}
for(int j=;;j++)
{
if(!vis[j])
{
SG[i]=j;
break;
}
}
}
pre^=SG[n];
}
if(pre) puts("Alice can win.");
else puts("Bob will win.");
}
return ;
}

最新文章

  1. 【云知道】LoadRunner 录制问题集锦
  2. vs中部分快捷键
  3. php碎片
  4. 【JAVA】Spring 事物管理
  5. iOS之UI--主流框架的搭建--仿制QQ的UI框架
  6. Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel
  7. java初学者必看经典
  8. IOS设备设计完整指南(转载)
  9. UIALertView与UIAlertViewDelegate的基本用法
  10. jq模仿雨滴下落的动画
  11. xampp配置多端口访问
  12. Selenium定位iframe动态ID
  13. 图片缓存:浏览器刷新 和 304 Not Modified 与 If-Modified-Since 及 Cache-Control
  14. java线程调度原则
  15. jsp中的js嵌入Extjs与后台action交互
  16. jQuery学习_具备吸附功能的拖曳框
  17. RecyclerView 初体验
  18. 洛谷P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver
  19. jQuery--全选、反选、取消
  20. windows服务器配置tomcat开机自动启动

热门文章

  1. Web和Native使用外部字体ttf方法
  2. 【BZOJ5102】[POI2018]Prawnicy 堆
  3. jfinal关联查询给dto添加表结构以外的字段并返回的处理方式
  4. 170719、springboot编程之异步调用@Async
  5. Eclipse git pull 报Nothing to fetch 异常原因
  6. Java类集框架——List接口
  7. Crossed ladders---poj2507(二分+简单几何)
  8. 【JEECG技术博文】JEECG表单配置-树形表单
  9. sql server 里的文件和文件组使用
  10. EasyUI Easyloader 加载器