如果硬要说这算是博弈题目的话,那这个博弈是不公平博弈(partizan games),因为双方面对同一个局面做出来的决策是不一样的。

我们平时做的博弈都是公平博弈(impartial games),所以在这道题里面,那些必胜必败状态,SG函数SG定理都派不上用场了。

但是,这道题是可以贪心的。

比如第一个图案对于Alice来说是安全稳定的,因为Bob不会跟他去抢位置,所以Alice可以省到最后去放。同样地,Bob可以将第2个图案省到最后再去放。

比如说第15个图案,如果能抢先占到的话会很划算的,因为如果一方占到,不光对方放不了了,自己还会多一个稳定位。

更详细的分析见这:http://www.cnblogs.com/staginner/archive/2011/09/10/2173317.html

我发现大家的思路都是按照这个来的。

 1 #include <cstdio>
 2
 3 int a[16];
 4
 5 int main()
 6 {
 7     //freopen("in.txt", "r", stdin);
 8
 9     int T; scanf("%d", &T);
10     for(int kase = 1; kase <= T; ++kase)
11     {
12         for(int i = 1; i <= 15; i++) scanf("%d", &a[i]);
13         int now = 0, A = a[1] * 2, B = a[2] * 2;
14         if(a[15] % 2 != 0) { A++; now = 1; }
15         int ta = a[5] + a[6], tb = a[3] + a[4];
16         if(ta > tb)//Alice抢5,6, Bob抢3,4
17         {
18             ta -= tb;
19             if(ta % 2 != 0)
20             {
21                 if(now == 0) A += ta/2 + 1;
22                 else A += ta / 2;
23                 now = 1 - now;
24             }
25             else A += ta / 2;
26         }
27         else if(ta < tb)
28         {
29             tb -= ta;
30             if(tb % 2 != 0)
31             {
32                 if(now == 0) B += tb / 2;
33                 else B += tb/2 + 1;
34                 now = 1 - now;
35             }
36             else B += tb / 2;
37         }
38         //两人瓜分11,12,13,14
39         int t = a[11] + a[12] + a[13] + a[14];
40         if(t % 2 != 0) now = 1 - now;
41         //Alice抢7,8, Bob抢9,10
42         ta = a[7] + a[8]; tb = a[9] + a[10];
43         if(ta < tb)
44         {
45             tb -= ta;
46             if(tb % 2 != 0)
47             {
48                 if(now == 0) B += tb/2 + 1;
49                 else B += tb / 2;
50                 now = 1 - now;
51             }
52             else B += tb / 2;
53         }
54         else if(ta > tb)
55         {
56             ta -= tb;
57             if(ta % 2 != 0)
58             {
59                 if(now == 0) A += ta / 2;
60                 else A += ta/2 + 1;
61                 now = 1 - now;
62             }
63             else A += ta / 2;
64         }
65
66         bool win;
67         if(now == 0) win = B >= A ? false : true;
68         else win = A >= B ? true : false;
69         printf("Case #%d: %s\n", kase, win ? "Alice" : "Bob");
70     }
71
72     return 0;
73 }

代码君

转载于:https://www.cnblogs.com/AOQNRMGYXLMV/p/4418387.html

HDU 4023 (博弈 贪心 模拟) Game相关推荐

  1. HDU - 6746 Civilization(贪心+模拟)

    题目链接:点击查看 题目大意:中文题面 题目分析:一道比赛时写崩了的模拟,赛后参考别人的代码,发现原来这个题目可以写的如此简单 说会题目,n 只有 500 ,可以 n * n 枚举每个位置作为起点,对 ...

  2. HDU 3328 Flipper 栈 模拟

    HDU 3328 Flipper 栈 模拟 首先想说,英语太烂这题读了很长时间才读懂......题意是说输入有几张牌,然后输入这些牌的初始状态(是面朝上还是面朝下),然后输入操作方式,R表示翻一下右边 ...

  3. 校内hu测(10.6T2,T3)(乱搞+贪心+模拟)

    @liu_runda T2.便(then) [题目描述] 给出一个R*C的棋盘.共有R行C列,R*C个格子.现要在每个格子都填一个非负整数.使得任意一个2*2的正方形区域都满足这样的性质:左上角的数字 ...

  4. 【NOIP2013】积木大赛(差分数组,贪心模拟)

    题目 原题链接 问题描述 分析 直观思路--贪心模拟:每次都处理最长正整数区段. 以[2,3,4,1,2][2,3,4,1,2][2,3,4,1,2]为例: [2,3,4,1,2]⟹[1,2,3,0, ...

  5. hdu 5248(二分+贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5248 解题思路:这道题我原本的思路是动态规划,结果看到数很大,结果放弃了.然后想到二分,思路是对的,只 ...

  6. hdu 5246(贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5246 解题思路:先排序,在采用贪心的方法,先给百小度找到合适的初始战斗力,找到比初始战斗力上限小的中最 ...

  7. CodeForces - 1362E Johnny and Grandmaster(贪心+模拟)

    题目链接:点击查看 题目大意:给出一个基数 p ,再给出 n 个指数 k ,换句话说,现在有一个长度为 n 的序列,每个元素都是 p^k[ i ] ,现在需要将这个序列分到两个集合中,使得两个集合元素 ...

  8. CodeForces - 1321C Remove Adjacent(贪心+模拟)

    题目链接:点击查看 题目大意:给出一个长度不超过100且只包含小写字母的字符串,现在规定,如果某个位置 i 的相邻位置存在着当前位置所代表字母的前一个字母,即 i - 1 和 i + 1 中存在着 a ...

  9. CodeForces - 1303D Fill The Bag(贪心+模拟)

    题目链接:点击查看 题目大意:给出一个背包,容量为 k ,再给出 n 个物品,每个物品的大小保证是 2 的幂次,现在可以进行操作,使得一个物品分为大小相等的,且大小等于原物品一半的两个物品,比如一个物 ...

最新文章

  1. Chart.js-线形图分析(参数分析+例图)
  2. 技术是最求 买卖是境界
  3. php怎么输出3个函数和,PHP利用var_dump,var_export,print_r三个函数的区别示例
  4. Earliest PEP Algorithm Principles
  5. 从科技到“科技亲”,2019 IBM 中国论坛干货分享
  6. 贵州出台首部大数据地方法规 数据开放引入负面清单
  7. 冒泡排序C语言实现代码
  8. python处理word文档中表格 添加一列_Python操作word文档插入图片和表格的实例演示...
  9. 停电后文件变成二进制 修复_尝试并修补二进制启发
  10. android 与后台实时视频,android选择视频文件上传到后台服务器
  11. 解决Host key verification failed.
  12. 微信小程序实现预览图片
  13. 【Python】max()中key的使用
  14. linux postfix 虚拟,postfix虚拟别名域的配置
  15. 开发工程师的人生是这样的
  16. 【智能优化算法】基于阴阳对优化算法求解单目标优化问题附matlab代码 Yin Yang Pair Optimization
  17. Git同步原始repo的改动到fock的repo
  18. 如何设计大型集团一体化IT运维系统
  19. 数据挖掘技术特写(转)
  20. 从阿里P1到P7,他的阿里七年总结就是两个字

热门文章

  1. Sam Hartman 当选 Debian 社区领导人
  2. Scrapy 框架 分布式 爬虫
  3. SAXReader解析xml繁体字乱码问题
  4. 《OpenCV图像处理》——1.7 用户交互工具
  5. ssh 在远程主机执行本地脚本
  6. 不错的东西: AutoMapper
  7. 深度窥探 QuickTest 视图(1)
  8. 实验四十一、×××(IPSec)的配置
  9. 设计模式之一:单例模式(Singleton Pattern)
  10. gcc 5.2.0 编译安装笔记-20151110