HDU 4023 (博弈 贪心 模拟) Game
2015-04-11 20:50
337 查看
如果硬要说这算是博弈题目的话,那这个博弈是不公平博弈(partizan games),因为双方面对同一个局面做出来的决策是不一样的。
我们平时做的博弈都是公平博弈(impartial games),所以在这道题里面,那些必胜必败状态,SG函数SG定理都派不上用场了。
但是,这道题是可以贪心的。
比如第一个图案对于Alice来说是安全稳定的,因为Bob不会跟他去抢位置,所以Alice可以省到最后去放。同样地,Bob可以将第2个图案省到最后再去放。
比如说第15个图案,如果能抢先占到的话会很划算的,因为如果一方占到,不光对方放不了了,自己还会多一个稳定位。
更详细的分析见这:http://www.cnblogs.com/staginner/archive/2011/09/10/2173317.html
我发现大家的思路都是按照这个来的。
代码君
我们平时做的博弈都是公平博弈(impartial games),所以在这道题里面,那些必胜必败状态,SG函数SG定理都派不上用场了。
但是,这道题是可以贪心的。
比如第一个图案对于Alice来说是安全稳定的,因为Bob不会跟他去抢位置,所以Alice可以省到最后去放。同样地,Bob可以将第2个图案省到最后再去放。
比如说第15个图案,如果能抢先占到的话会很划算的,因为如果一方占到,不光对方放不了了,自己还会多一个稳定位。
更详细的分析见这:http://www.cnblogs.com/staginner/archive/2011/09/10/2173317.html
我发现大家的思路都是按照这个来的。
#include <cstdio> int a[16]; int main() { //freopen("in.txt", "r", stdin); int T; scanf("%d", &T); for(int kase = 1; kase <= T; ++kase) { for(int i = 1; i <= 15; i++) scanf("%d", &a[i]); int now = 0, A = a[1] * 2, B = a[2] * 2; if(a[15] % 2 != 0) { A++; now = 1; } int ta = a[5] + a[6], tb = a[3] + a[4]; if(ta > tb)//Alice抢5,6, Bob抢3,4 { ta -= tb; if(ta % 2 != 0) { if(now == 0) A += ta/2 + 1; else A += ta / 2; now = 1 - now; } else A += ta / 2; } else if(ta < tb) { tb -= ta; if(tb % 2 != 0) { if(now == 0) B += tb / 2; else B += tb/2 + 1; now = 1 - now; } else B += tb / 2; } //两人瓜分11,12,13,14 int t = a[11] + a[12] + a[13] + a[14]; if(t % 2 != 0) now = 1 - now; //Alice抢7,8, Bob抢9,10 ta = a[7] + a[8]; tb = a[9] + a[10]; if(ta < tb) { tb -= ta; if(tb % 2 != 0) { if(now == 0) B += tb/2 + 1; else B += tb / 2; now = 1 - now; } else B += tb / 2; } else if(ta > tb) { ta -= tb; if(ta % 2 != 0) { if(now == 0) A += ta / 2; else A += ta/2 + 1; now = 1 - now; } else A += ta / 2; } bool win; if(now == 0) win = B >= A ? false : true; else win = A >= B ? true : false; printf("Case #%d: %s\n", kase, win ? "Alice" : "Bob"); } return 0; }
代码君
相关文章推荐
- HDU 4023 Game 贪心 + 博弈
- HDU 4023--Game(贪心+博弈)
- HDU 5090 Game with Pearls【贪心||模拟||二分匹配】
- hdu-4023-博弈(模拟)
- 【JZOJ3819】【NOI2015模拟9.9】【hdu 4111】取石子(博弈+贪心+记忆化搜索)
- HDU 4023 贪心+博弈
- hdu 4023 2011上海赛区网络赛C 贪心+模拟
- HDU 4023【博弈+贪心策略】
- HDU-4647 Another Graph Game 贪心,博弈
- 2011 上海网选 HDU 4023 Game (博弈+人工智能)
- HDU 4023 Game (博弈)
- hdu 4023 Doubloon Game(博弈)
- HDU 1034 Candy Sharing Game(水模拟)
- hdu 3389 Game<阶梯博弈>
- 威佐夫博弈(Wythoff Game)初识 HDU 1527 POJ 1067
- HDU 3389 Game(博弈)
- HDU 1564 Play a game (找规律博弈)
- HDU 2258 Continuous Same Game (1)[模拟]
- HDU 4647 Another Graph Game(贪心)
- HDU_3389 Game 博弈