HDU 2897 邂逅明下 博弈
来源:互联网 发布:优化资源配置 编辑:程序博客网 时间:2024/05/29 03:01
题意:一堆石子n个,A,B两人轮流从中取,每次取的石子必须在区间[p,q]内,若剩下的石子少于p个,
取石者须全部取完。最后取石子的者输。给出n,p,q,问先取者是否有必胜策略?
思路:巴什博弈变形
证明:假设先手为A,后手为B,初始n个,除最后一次每次取的石子个数必须
在区间[p,q]内,则:
1.若当前石子共有n = (p+q)*k个,则A必胜,必胜策略为:
A第一次取q个,以后每次若B取m个,A取(p+q-m)个,如此最后必剩下p个给B,A胜
2.若n = (p+q)*k+r,(1<r<=p),则B必胜,必胜策略为:
每次取石子活动中,若A取m个,则B取(p+q-m)个,那么最后必剩下r个给A,
此时r<=p,A只能一次取完,B胜
3.若n = (p+q)*k+r,(p<r<p+q),则A必胜,必胜策略为:
A第一次取t(1<r-t<=p)个,以后每次若B取m个,A取(p+q-m)个,
网上有打表求SG的函数的。
取石者须全部取完。最后取石子的者输。给出n,p,q,问先取者是否有必胜策略?
思路:巴什博弈变形
证明:假设先手为A,后手为B,初始n个,除最后一次每次取的石子个数必须
在区间[p,q]内,则:
1.若当前石子共有n = (p+q)*k个,则A必胜,必胜策略为:
A第一次取q个,以后每次若B取m个,A取(p+q-m)个,如此最后必剩下p个给B,A胜
2.若n = (p+q)*k+r,(1<r<=p),则B必胜,必胜策略为:
每次取石子活动中,若A取m个,则B取(p+q-m)个,那么最后必剩下r个给A,
此时r<=p,A只能一次取完,B胜
3.若n = (p+q)*k+r,(p<r<p+q),则A必胜,必胜策略为:
A第一次取t(1<r-t<=p)个,以后每次若B取m个,A取(p+q-m)个,
那么最后必剩下1<r-t<=p个给B,A胜
开始自己也想到了巴什博弈但是没有想到这么多,突然发现博弈真的很好玩。。
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;int main(){ int n,m,t; while(~scanf("%d %d %d",&n,&m,&t)) { if(n%(m+t)==0) printf("WIN\n"); else if(n%(m+t)<=m) printf("LOST\n"); else printf("WIN\n"); } return 0;}
网上有打表求SG的函数的。
0 0
- hdu 2897 邂逅明下(博弈)
- hdu 2897 邂逅明下 博弈
- HDU 2897 邂逅明下 (博弈)
- HDU 2897 邂逅明下(博弈)
- HDU 2897 邂逅明下 博弈
- HDU 2897 邂逅明下 简单博弈
- HDU 2897 邂逅明下(博弈)
- HDU 2897 邂逅明下(巴什博弈)
- HDU 2897 邂逅明下 (经典博弈变形)
- HDU 2897 邂逅明下(巴什博弈变形)
- HDU 2897(邂逅明下) 巴什博弈扩展
- HDU-2897-邂逅明下【巴什博弈变形】
- hdu 2897 邂逅明下(巴什博弈)
- HDU 2897-邂逅明下 博弈论初步 巴什博弈
- hdu 邂逅明下(Bash博弈的变形)
- hdu 2897 邂逅明下
- HDU 2897 邂逅明下
- HDU 2897 邂逅明下
- 使用Spring MVC统一异常处理实战
- 浅谈Java中的hashcode方法
- UIWebView---使用Safari进行调试
- Android关机流程 一
- hadoop体系当前重要的两个资源管理框架:mesos&yarn
- HDU 2897 邂逅明下 博弈
- SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL
- OC中类的深入研究和SEL基本用法总结
- jvm性能调优,垃圾回收器详细说明
- HDOJ 题目3549 Flow Problem(最大流)
- 2015寒假训练赛一-D题
- 银行信用卡不良记录到底要怎么才能消除
- LeetCode_Remove Duplicates from Sorted Array
- 项目教学法在高职生物统计附试验设计教学的实践