【POJ1740】A New Stone Game 构造博弈
来源:互联网 发布:淘宝官换机靠谱吗 编辑:程序博客网 时间:2024/04/30 00:47
题意:多组数据,每组数据一个先n,然后给出n堆石子的数目。
两人轮流操作,每次可以从某数量为xi的石子堆中扔掉k个石子(k∈[1,xi]),然后剩余xi-k个,可以把g个石子随意分给其他堆(不能凭空建堆出来,g∈(0,xi-k))。
题解:
首先构造平衡状态:
有偶数堆,且可以两两配对。
这样可以理解为先手玩一下,后手可以有同样的应对策略。(脑洞开一下就好了,这不是难点少年)
那么如何构造平衡状态呢?
考虑如果总数是奇数,那么有下图。
然后如果总数是偶数,那么有下两图。
图一为我们先将石子排序,然后最高的放到左边
图二就是配对方式。(到这其实就很水了)
但是如果刚开始就是平衡的那就没招了,先手只能输了。
呃,只能说可以发现
好了,可以看代码了:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 15using namespace std;int stone[N],n;int main(){//freopen("test.in","r",stdin);int i,j,k;while(scanf("%d",&n),n){for(i=1;i<=n;i++)scanf("%d",&stone[i]);if(n&1)puts("1");else {sort(stone+1,stone+n+1);bool flag=1;for(i=1;i<n;i+=2)flag&=(stone[i]==stone[i+1]);if(flag)puts("0");else puts("1");}}return 0;}
1 0
- 【POJ1740】A New Stone Game 构造博弈
- POJ1740 A New Stone Game 博弈
- poj1740 A New Stone Game 博弈
- poj1740 A New Stone Game(博弈)
- [POJ1740]A New Stone Game(博弈)
- poj1740 A New Stone Game
- POJ1740 A New Stone Game
- 【poj1740】 A New Stone Game
- [poj1740]A New Stone Game
- poj1740(A New Stone Game+男人八题之一)
- POJ1740--A New Stone Game(Nin变形)
- poj 1740 A New Stone Game( 博弈)
- poj 1740 A New Stone Game(博弈)
- POJ_1740 A New Stone Game 博弈
- 博弈 POJ A New Stone Game
- poj 1740 A New Stone Game(博弈)
- poj 1740 A New Stone Game 博弈
- A New Stone Game(博弈)
- 头文件库
- 编程珠玑之第二章习题4
- java中HashMap详解
- /dev/dm-N、 /dev/mpath/mpathN、/dev/mapper/mpathN的区别
- bfs-dfs-bst
- 【POJ1740】A New Stone Game 构造博弈
- iOS项目目录结构和开发流程
- NYOJ 题目138找球号(二)(哈希)
- Bower常用命令
- ubuntu 安装go语言编译环境
- 常用快捷方式及设置
- Java基础(4)
- 大唐珲春发电厂空压机油采购招标公告
- 【JavaScript】元素:<script>