LA 7278 Game of Cards(SG函数)
2024-10-16 10:28:57
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 ;
}
最新文章
- 【云知道】LoadRunner 录制问题集锦
- vs中部分快捷键
- php碎片
- 【JAVA】Spring 事物管理
- iOS之UI--主流框架的搭建--仿制QQ的UI框架
- Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel
- java初学者必看经典
- IOS设备设计完整指南(转载)
- UIALertView与UIAlertViewDelegate的基本用法
- jq模仿雨滴下落的动画
- xampp配置多端口访问
- Selenium定位iframe动态ID
- 图片缓存:浏览器刷新 和 304 Not Modified 与 If-Modified-Since 及 Cache-Control
- java线程调度原则
- jsp中的js嵌入Extjs与后台action交互
- jQuery学习_具备吸附功能的拖曳框
- RecyclerView 初体验
- 洛谷P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver
- jQuery--全选、反选、取消
- windows服务器配置tomcat开机自动启动
热门文章
- Web和Native使用外部字体ttf方法
- 【BZOJ5102】[POI2018]Prawnicy 堆
- jfinal关联查询给dto添加表结构以外的字段并返回的处理方式
- 170719、springboot编程之异步调用@Async
- Eclipse git pull 报Nothing to fetch 异常原因
- Java类集框架——List接口
- Crossed ladders---poj2507(二分+简单几何)
- 【JEECG技术博文】JEECG表单配置-树形表单
- sql server 里的文件和文件组使用
- EasyUI Easyloader 加载器