bzoj 1874: [BeiJing2009 WinterCamp]取石子游戏【博弈论】
先预处理出来sg值,然后先手必败状态就是sg[a[i]]的xor和为0(nim)
如果xor和不为0,那么一定有办法通过一步让xor和为0,具体就是选一个最大的sg[a[i]],把它去成其他sg值的xor和,这样后手的xor和就是0了
当然并不一定要取最大的,只要sg[a[i]]>(ans^sg[a[i]])即可,从小到大枚举,然后判一下是否能取这么多即可
#include<iostream>
#include<cstdio>
using namespace std;
const int N=1005;
int n,m,a[N],b[N],sg[N],v[N],ti,ans;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	scanf("%d",&m);
	for(int i=1;i<=m;i++)
		scanf("%d",&b[i]);
	for(int i=1;i<=1000;i++)
	{
		ti++;
		for(int j=1;j<=m;j++)
			if(i-b[j]>=0)
				v[sg[i-b[j]]]=ti;
		for(int j=0;j<=1000;j++)
			if(v[j]!=ti)
			{
				sg[i]=j;
				break;
			}
	}
	for(int i=1;i<=n;i++)
		ans^=sg[a[i]];
	if(!ans)
		puts("NO");
	else
	{
		puts("YES");
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				if(sg[a[i]-b[j]]==(ans^sg[a[i]]))
				{
					printf("%d %d\n",i,b[j]);
					return 0;
				}
	}
	return 0;
}
												
											bzoj 1874: [BeiJing2009 WinterCamp]取石子游戏【博弈论】的更多相关文章
- BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏 [Nim游戏 SG函数]
		
小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,每次取石子的个数有限制,谁不能取石子时就会输掉游戏. 小H先进行操作,他想问你他是否有必胜策略,如 ...
 - BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)
		
Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 871 Solved: 365[Submit][Status][Discuss] Description ...
 - BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏
		
Time Limit: 5 Sec Memory Limit: 162 MB Submit: 957 Solved: 394 [Submit][Status][Discuss] Description ...
 - [BZOJ 1874] [BeiJing2009 WinterCamp] 取石子游戏 【博弈论 | SG函数】
		
题目链接:BZOJ - 1874 题目分析 这个是一种组合游戏,是许多单个SG游戏的和. 就是指,总的游戏由许多单个SG游戏组合而成,每个SG游戏(也就是每一堆石子)之间互不干扰,每次从所有的单个游戏 ...
 - 1874: [BeiJing2009 WinterCamp]取石子游戏 - BZOJ
		
Description小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,每次取石子的个数有限制,谁不能取石子时就会输掉游戏. 小H先进行操作,他想问 ...
 - bzoj1874 [BeiJing2009 WinterCamp]取石子游戏
		
1874: [BeiJing2009 WinterCamp]取石子游戏 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 925 Solved: 381[ ...
 - [bzoj1874][BeiJing2009 WinterCamp]取石子游戏_博弈论
		
取石子游戏 bzoj-1874 BeiJing2009 WinterCamp 题目大意:题目链接. 注释:略. 想法: 我们通过$SG$函数的定义来更新$SG$的转移. 如果是寻求第一步的话我们只需要 ...
 - 【博弈论】【SG函数】【枚举】bzoj1874 [BeiJing2009 WinterCamp]取石子游戏
		
枚举第一步可能达到的状态,判断是否是必败态即可. #include<cstdio> #include<set> #include<cstring> using na ...
 - [BeiJing2009 WinterCamp]取石子游戏 Nim SG 函数
		
Code: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ...
 
随机推荐
- 简洁的ios小界面
			
下午写写了个小东西小界面 有须要的能够直接拿过来用 ,简洁,挺好看,自我感觉: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDEyMzIwOA= ...
 - [POI 2001+2014acm上海邀请赛]Gold Mine/Beam Cannon 线段树+扫描线
			
Description Byteman, one of the most deserving employee of The Goldmine of Byteland, is about to re ...
 - SpringBoot学习之文件结构和配置文件
			
Springboot文件结构和配置文件 转载:http://www.zslin.com/web/article/detail/11 项目文件结构 新建的Springboot项目的文件结构如下: |-c ...
 - Intel Developer Forum
			
http://en.wikipedia.org/wiki/Intel_Developer_Forum Intel Developer Forum From Wikipedia, the free en ...
 - Simple calculations
			
Description 有一个包括n+2个元素的数列a0, a1, ..., an+1 (n <= 3000, -1000 <= ai <=1000).它们之间满足ai = (ai- ...
 - 项目Beta冲刺(团队2/7)
			
项目Beta冲刺(团队2/7) 团队名称: 云打印 作业要求: 项目Beta冲刺(团队) 作业目标: 完成项目Beta版本 团队队员 队员学号 队员姓名 个人博客地址 备注 221600412 陈宇 ...
 - 利用PHP判断iPhone、iPad、Android、PC设备
			
首页那张大图确实是一个比较头疼的问题 在PC上显示是没问题的,可是到手机上就会超出页面一大截,如果做自适应,图片会被强制压缩 无奈只能用wp_is_mobile()函数在手机上隐藏了这张图,可是这函数 ...
 - ECMAScript学习笔记
			
1. ECMAScript不存在块级作用域,因此在循环内部定义的变量,在循环外也是可以访问的 eg: var count =10; fpr(var i=0; i<count; i++){ ale ...
 - 如何设计一个优秀的API
			
如何设计一个优秀的API - 文章 - 伯乐在线 http://blog.jobbole.com/42317/ 如何设计一个优秀的API - 标点符 https://www.biaodianfu.co ...
 - strong and weak 强引用和弱引用的差别
			
(weak和strong)不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它. 一旦最后一个strong型指针离去 .这个对象将被释放,全部剩余 ...