博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU(2897)邂逅明下
阅读量:5296 次
发布时间:2019-06-14

本文共 818 字,大约阅读时间需要 2 分钟。

巴什博奕的变形。

只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取p个,最多取q个。最后取光者得输。

    显然,如果n=r*(p+q)+s , 即s = n%(p+q).

 # n%(p+q) == 0

    先手一定赢,假设先手第一次拿q个,接着每次不管后手拿多少个,假设后手拿k个,先手都可以拿p+q-k

      个,所以最后一定剩下p个给后手,所以先手必胜。

 # n%(p+q) !=  0

    1.(1< s <= p)那么由于一次最多只能取q个,所以,无论先手拿走多少个,假设拿了k个, 后手都能够一

     次拿走p+q-k个物品,最后剩下s个给先手,所以先手必输。

    2.(p < s < q+p)先手第一次取x(1<s-x<=p)个,以后每次若后手取k个,先手则取(p+q-k)个,那么

     最后必剩下1<s-x<=p个给后手,所以先手必胜。

#include 
#include
#include
#include
#include
using namespace std;int main() { int n,p,q; while(~scanf("%d%d%d",&n,&p,&q)){ if(n%(p+q)&&p >= n%(p+q)) printf("LOST\n"); else printf("WIN\n"); } return 0;}

 

转载于:https://www.cnblogs.com/Roly/archive/2013/05/15/3079653.html

你可能感兴趣的文章
深入Java虚拟机读书笔记第三章安全
查看>>
素数筛选法
查看>>
php连接postgresql数据库
查看>>
Visual studio之C# 调用系统软键盘(外部"osk.exe")
查看>>
移动应用开发选型:向左还是向右?
查看>>
开发进度一
查看>>
十天冲刺(6)
查看>>
MyBaits学习
查看>>
实体标签,媒体标签,飘动标签
查看>>
MySQL安装的详细步骤
查看>>
管道,数据共享,进程池
查看>>
Java基础--面向对象编程4(多态)
查看>>
CSS
查看>>
shell 管道和tee使用时获取前面命令返回值
查看>>
[LeetCode] 55. Jump Game_ Medium tag: Dynamic Programming
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>
[TypeScript] Understanding Generics with RxJS
查看>>
WordPress GRAND FlAGallery插件“s”跨站脚本漏洞
查看>>
程序集的混淆及签名
查看>>
java笔记
查看>>