POJ 1740 A New Stone Game 又是博弈论配对找规律orz 博弈论 规律
http://poj.org/problem?id=1740
这个博弈一眼看上去很厉害很高大上让人情不自禁觉得自己不会写,结果又是找规律……
博弈一般后手胜都比较麻烦,但是主要就是找和先手的对应关系,依然看了题解……
如果所有石头堆两两配对的话后手对先手的每一步都可以对应走一步,那么此时后手必胜。
如果不是两两配对,先手可以通过一次操作使石头堆两两配对,此时的两两配对局面面对的是后手,所以先手必胜。
不是两两配对时的操作:首先将所有非配对推按大小排序(只有一堆直接取没就可以了);
然后显然不配对的堆数为奇数时,最大堆能把前面的填成两两配对(剩下的扔了)。为偶数时,最大堆留下和最小堆一样多的,然后依然能把剩余的填成两两配对。
太鬼畜了orz
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<map>
using namespace std;
const int maxn=;
int n;
int a[maxn]={};
int main(){
while(~scanf("%d",&n)){
if(!n)return ;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}
if(n&)printf("1\n");
else{
sort(a+,a++n);
int f=;
for(int i=;i<=n;i+=){
if(a[i]!=a[i-]){
f=;break;
}
}
printf("%d\n",f);
}
}
return ;
}
POJ 1740 A New Stone Game 又是博弈论配对找规律orz 博弈论 规律的更多相关文章
- POJ 1740 A New Stone Game(博弈)题解
		
题意:有n个石子堆,每一个都可以轮流做如下操作:选一个石堆,移除至少1个石子,然后可以把这堆石子随便拿几次,随便放到任意的其他石子数不为0的石子堆,也可以不拿.不能操作败. 思路:我们先来证明,如果某 ...
 - 博弈论(男人八题):POJ 1740 A New Stone Game
		
A New Stone Game Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5694 Accepted: 3119 ...
 - POJ 1740 A New Stone Game
		
A New Stone Game Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5453 Accepted: 2989 ...
 - poj 1740 A New Stone Game(博弈)
		
A New Stone Game Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5338 Accepted: 2926 ...
 - POJ 1740 A New Stone Game(普通博弈)
		
A New Stone Game 题意: 对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余石子的一部分分给其它的某些堆.最后谁无子可取即输 ...
 - [原博客] POJ 1740 A New Stone Game
		
题目链接题意:有n堆石子,两人轮流操作,每次每个人可以从一堆中拿走若干个扔掉(必须),并且可以从中拿走一些分到别的有石子的堆里(可选),当一个人不能拿时这个人输.给定状态,问是否先手必胜. 我们参考普 ...
 - POJ 1740 A New Stone Game(多堆博弈找规律)
		
传送门 //有n堆,AB轮流从n堆的一堆中移任意个,可以扔掉,也可以移给其他堆中的一堆 //最先移完的胜 //如果n堆中两两堆数目相等,那肯定是B胜 //但只要有非两两相同的,如xyz,A先, //A ...
 - [08山东省选]2298 石子合并 即POJ 1738 An old Stone Game
		
2298 石子合并 2008年省队选拔赛山东 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 在 ...
 - 【POJ】A New Stone Game(博弈论)
		
http://poj.org/problem?id=1740 题目大意就是,对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余石子的一部分分 ...
 
随机推荐
- [BZOJ2946][Poi2000]公共串解题报告|后缀自动机
			
鉴于SAM要简洁一些...于是又写了一遍这题... 不过很好呢又学到了一些新的东西... 这里是用SA做这道题的方法 首先还是和两个字符串的一样,为第一个字符串建SAM 然后每一个字符串再在这个SAM ...
 - 区块链~Merkle Tree(默克尔树)算法解析~转载
			
转载~Merkle Tree(默克尔树)算法解析 /*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为 ...
 - Python标准库笔记(4) — collections模块
			
这个模块提供几个非常有用的Python容器类型 1.容器 名称 功能描述 OrderedDict 保持了key插入顺序的dict namedtuple 生成可以使用名字来访问元素内容的tuple子类 ...
 - device tree source file position
			
android/kernel/msm-4.9/arch/arm64/boot/dts/qcom/
 - 终于解决了Linux下运行OCCI程序一直报Error while trying to retrieve text for error ORA-01804错误
			
终于解决了Linux下运行OCCI程序一直报Error while trying to retrieve text for error ORA-01804错误 http://blog.csdn.net ...
 - 【bzoj4448】SCOI2015 情报传递
			
树剖,可以相当于一个染色问题,以及询问先前节点的染色个数. 把第二种操作离线掉,然后用线段树模拟即可. #include<bits/stdc++.h> #define N 800010 # ...
 - kivy安装
			
>>> os.system('pip install kivy')Collecting kivy Downloading Kivy-1.9.1-cp27-none-win_amd64 ...
 - mysql数据库隔离级别
			
# 原创,转载请留言联系 事务的隔离级别 (由高到低)1.串行化(serializable):一个事务一个事务的执行2.可重复读(Repeatable-Read) 可重复读,无论其他事务是否修改并提交 ...
 - linux命令(34):less命令
			
1.命令格式: less [参数] 文件 2.命令功能: less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会 ...
 - linux命令(19):chown命令
			
1.命令格式: chown [选项]... [所有者][:[组]] 文件... 2.命令功能: 通过chown改变文件的拥有者和群组.在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置. ...