首页 > 代码库 > hdu 2987 邂逅明下
hdu 2987 邂逅明下
巴什博弈的变形:假设先取者为A,后取者为B,初始状态下有石子n个,除最后一次外其他每次取得石子个数必须在[p,q]之间。
若当前石子共有n =(p+q)* r个,则A必胜,必胜策略为:A第一次取q个,以后每次若B取K个,A取(p+q-k)个,如此下去最后必剩下p个给B,所以A必胜。
若n =(p+q)* r + left个(1< left <= p)B必胜,必胜策略为:每次取石子活动中,若A取k个,则B去(p+q-k)个,那么最后剩下left个给A,此时left <= p,所以A只能一次去完,B胜。
若n =(p+q)* r + left个(p < left <= q),则A必胜,必胜策略为:A第一次取t(1<left – t <= p)个,以后每次B取k个,则A取(p+q-k)个,那么最后留下1< left – t <=p给B,则A胜。
代码如下:
<span style="font-size:24px;">#include<stdio.h> int main() { int n,p,q,m; while(~scanf("%d%d%d",&n,&p,&q)) { m=n%(p+q); if(m==0||m>p) printf("WIN\n"); else printf("LOST\n"); } return 0; } </span>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。