HDU 2897 邂逅明下

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2897


题意:一堆石子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)个,


   那么最后必剩下1<r-t<=p个给B,A胜


#include<stdio.h>
int main()
{
   int n,p,q,r;
   while(scanf("%d%d%d",&n,&p,&q)!=EOF)
   {
      r=n%(p+q);
	  if(r<=p&&r>0)
	   printf("LOST\n");
	   else printf("WIN\n");
   }
   return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值