题目链接:点这里

Problem Description

当日遇到月,于是有了明。当我遇到了你,便成了侣。
那天,日月相会,我见到了你。而且,大地失去了光辉,你我是否成侣?这注定是个凄美的故事。(以上是废话)
小t和所有世俗的人们一样,期待那百年难遇的日食。驻足街头看天,看日月渐渐走近,小t的脖子那个酸呀(他坚持这个姿势已经有半个多小时啦)。他低下仰起的头,环顾四周。忽然发现身边竟站着位漂亮的mm。天渐渐暗下,这mm在这街头竟然如此耀眼,她是天使吗?站着小t身边的天使。
小t对mm惊呼:“缘分呐~~”。mm却毫不含糊:“是啊,500年一遇哦!”(此后省略5000字….)
小t赶紧向mm要联系方式,可mm说:“我和你玩个游戏吧,赢了,我就把我的手机号告诉你。”小t,心想天下哪有题目能难倒我呢,便满口答应下来。mm开始说游戏规则:“我有一堆硬币,一共7枚,从这个硬币堆里取硬币,一次最少取2枚,最多4枚,如果剩下少于2枚就要一次取完。我和你轮流取,直到堆里的硬币取完,最后一次取硬币的算输。我玩过这个游戏好多次了,就让让你,让你先取吧~”
小t掐指一算,不对呀,这是不可能的任务么。小t露出得意的笑:“还是mm优先啦,呵呵~”mm霎时愣住了,想是对小t的反应出乎意料吧。
她却也不生气:“好小子,挺聪明呢,要不这样吧,你把我的邮箱给我,我给你发个文本,每行有三个数字n,p,q,表示一堆硬币一共有n枚,从这个硬币堆里取硬币,一次最少取p枚,最多q枚,如果剩下少于p枚就要一次取完。两人轮流取,直到堆里的硬币取完,最后一次取硬币的算输。对于每一行的三个数字,给出先取的人是否有必胜策略,如果有回答WIN,否则回答LOST。你把对应的答案发给我,如果你能在今天晚上8点以前发给我正确答案,或许我们明天下午可以再见。”
小t二话没说,将自己的邮箱给了mm。当他兴冲冲得赶回家,上网看邮箱,哇!mm的邮件已经到了。他发现文本长达100000行,每行的三个数字都很大,但是都是不超过65536的整数。小t看表已经下午6点了,要想手工算出所有结果,看来是不可能了。你能帮帮他,让他再见到那个mm吗?

Input

不超过100000行,每行三个正整数n,p,q。

Output

对应每行输入,按前面介绍的游戏规则,判断先取者是否有必胜策略。输出WIN或者LOST。

Sample Input

7 2 4
6 2 4

Sample Output

LOST
WIN

【分析】

拿到题目,直接就想到了博弈,题目不难,顺着推导就行了。反正这么水的我都能推出来。简单说一下推导过程:
假设当前面对的物体数量是n。则有:
当n<=p时,显然是必败状态。
然后所有的能转化成必败状态的状态就是必胜状态。所以有:
当p+1<=n<=p+q时显然是必胜状态。

然后接着往后面推导一些就可以显然得到:
k*(p+q)+p+1<=n<=(k+1)*(p+q)的时候就是必胜状态,其他情况就是必败状态。所以就直接让n对(p+q)
取模,然后就直接输出就行了。大概就是这样吧,自己推推就出来了。

【代码】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<vector>
#include<cmath>
#include<stdlib.h>
#include<time.h>
#include<stack>
#include<set>
#include<map>
#include<queue>
#include<sstream>
using namespace std;
#define rep0(i,l,r) for(int i = (l);i < (r);i++)
#define rep1(i,l,r) for(int i = (l);i <= (r);i++)
#define rep_0(i,r,l) for(int i = (r);i > (l);i--)
#define rep_1(i,r,l) for(int i = (r);i >= (l);i--)
#define MS0(a) memset(a,0,sizeof(a))
#define MS1(a) memset(a,-1,sizeof(a))
#define MSi(a) memset(a,0x3f,sizeof(a))
#define sin1(a) scanf("%d",&(a))
#define sin2(a,b) scanf("%d%d",&(a),&(b))
#define sll(a) scanf("%lld",&(a))
#define sll2(a,b) scanf("%lld%lld",&(a),&(b))
#define sdo(a) scanf("%lf",&(a))
#define sdo2(a,b) scanf("%lf%lf",&(a),&(b))
#define inf 0x3f3f3f3f
#define lson i<<1,l,mid
#define rson ((i<<1)|1),mid+1,r
#define uint unsigned int
typedef pair<int,int> PII;
#define A first
#define B second
#define pb push_back
#define MK make_pair
#define ll long long
template<typename T>
void read1(T &m)
{T x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}m = x*f;
}
template<typename T>
void read2(T &a,T &b)
{read1(a);read1(b);
}
template<typename T>
void read3(T &a,T &b,T &c)
{read1(a);read1(b);read1(c);
}
template<typename T>
void out(T a)
{if(a>9) out(a/10);putchar(a%10+'0');
}
template<typename T>
void outn(T a)
{if(a>9) out(a/10);putchar(a%10+'0');puts("");
}
using namespace std;
///---------------------------------------------------------------------------------
int main()
{
//    freopen("in.txt","r",stdin);int n,p,q;while(sin1(n)!=EOF){read2(p,q);n%=(p+q);if(n>0&&n<=p)puts("WIN");elseputs("LOST");}return 0;
}

hdu 2897 邂逅明下相关推荐

  1. HDU 2897 邂逅明下(简单博弈)

    题目链接 和经典那个报数博弈差不多,在仔细的纸上写写前面的几种情况后,猜想出规律,1Y.PS:思考时间不算长,也不算短,中规中矩. 0  -  p   - p+q - 2p +q - 2(p+q).. ...

  2. 杭电2897邂逅明下邂逅明下

    邂逅明下 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. hdu2897邂逅明下——博弈sg函数的应用

    邂逅明下 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. D - 邂逅明下 HDU - 2897(有点水平的巴什博奕)

    当日遇到月,于是有了明.当我遇到了你,便成了侣. 那天,日月相会,我见到了你.而且,大地失去了光辉,你我是否成侣?这注定是个凄美的故事.(以上是废话) 小t和所有世俗的人们一样,期待那百年难遇的日食. ...

  5. HDU 2897 (博弈 找规律) 邂逅明下

    根据博弈论的两条规则: 一个状态是必胜状态当且仅当有一个后继是必败状态 一个状态是必败状态当且仅当所有后继都是必胜状态 然后很容易发现从1开始,前p个状态是必败状态,后面q个状态是必胜状态,然后循环往 ...

  6. HDU 4521 小明系列问题——小明序列 LIS+动态规划

    HDU 4521小明系列问题--小明序列 Time Limit:1000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u ...

  7. hdu 2897 巴什博弈变形

    题目来源: http://acm.hdu.edu.cn/showproblem.php?pid=2897 分析: n % (p + q) == 0 先手赢. 策略为: A 拿 q ,  B 拿任意 k ...

  8. HDU 2096 小明A+B(%的运用)

    传送门: 小明A+B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. hdu 4501 小明系列故事——买年货 多重背包

    小明系列故事--买年货                                                                          Time Limit: 500 ...

最新文章

  1. 荣耀6 原生Android,荣耀6 (移动4G) 官方原生简约实用 流畅省电 杜比音效 网速显示-刷机之家...
  2. Android中Uri的使用
  3. 画出18*18的棋盘以及用不同颜色绘制出同心圆(python实现)
  4. Matlab---傅里叶变换---通俗理解(二)
  5. 解读Dataphin流批一体的实时研发
  6. ubuntu19.10升级
  7. CSS text-indent 属性
  8. arc073F Many Moves
  9. 用贝叶斯定理解决三门问题并用Python进行模拟(Bayes‘ Rule Monty Hall Problem Simulation Python)
  10. Google Maps API 进级:GoogleMaps中显示画中画
  11. python中除以0的处理方法
  12. 优盘在计算机上无法显示,u盘在电脑上识别不出来怎么办_u盘在电脑不显示如何修复-win7之家...
  13. 参加51CTO学院软考培训感想
  14. matlab步进电机模糊pid和BP神经网络控制
  15. 113道C语言题目,超经典的~~~
  16. 六十星系之11紫微破军坐丑未
  17. 亥姆霍兹线圈主要用途概述
  18. 第12课 Altium Designer20(AD20)+VESC6.4实战教程:原理图最后验证(北冥有鱼)
  19. 20176408李俊 查找技术
  20. text/template与html/template的区别

热门文章

  1. es父子结构查询_探索ES-嵌套对象和父子对象(四)
  2. java酷炫代码_Java8 中有趣酷炫的小技巧
  3. 情人节送ta一朵独一无二的玫瑰花
  4. 虾皮马来西亚热销产品有哪些?
  5. 粒子摇摆 shader
  6. 智能手机怎么玩java游戏_智能手机可以在普通手机上玩Java游戏吗?
  7. quartus频率计 时钟设置_频率计实验报告.doc
  8. 【verilog学习】Verilog语言中的或(|和||)
  9. 论文阅读:social lstm:Human Trajectory Prediction in Crowded Spaces
  10. 跨考计算机英语自我介绍,跨专业考研英语自我介绍