2016Y GDUT新生杯初赛 Problem D: 有趣的游戏
来源:互联网 发布:淘宝联邦止咳水暗语 编辑:程序博客网 时间:2024/05/01 21:55
Problem D: 有趣的游戏
Description
有个小师妹找zhazhahe玩游戏。他们有一堆n个珠子,每人轮流拿走若干个,轮到谁的回合拿不了珠子就算输。给出一个n,每次能拿走的珠子数量在区间[l,r]内(如果剩余珠子不足就不能拿,判输),小师妹先开始拿。假设小师妹和zhazhahe都非常聪明,会采取最优策略,问谁会赢得游戏?
Input
有多组样例,第一行输入一个样例数T(0<T<=1000)
每个样例只有一行,三个正整数n,l,r (0<n<=1000) (0<l<=r<=1000)
Output
每个样例只有一行,如果小师妹赢了输出“Win”,输了就输出“Lose”。
Sample Input
3
4 1 4
7 2 6
10 3 6
Sample Output
Win
Win
Lose
分析解答:
哦~有趣的游戏,这是一道博弈题,虽然昂,讲道理,我目前很菜,不会写博弈题。这里直接上官方题解,等我补了博弈的知识再补上题解
类型:博弈
分析:这种类型题的基本思路是找到一种恒定不变的方式,使得对方无论怎么拿,你都能找到对应要拿的数量
举个例子,假如n=22,取的区间为[1,2],那么小师妹第一次拿走1个,
使得剩下的数量21,是区间左右端点之和的倍数,即3的倍数.
那么无论对方怎么拿,我们都能维持剩下来的数量是3的倍数的状态不变,比如他拿1个,你就拿2个,或者他拿2个,你就拿1个
始终保持他能拿,我必能拿的状态,那么只要判断初始情况,我就知道我能不能稳赢
回顾刚刚的拿法,我们很容易推出一个方式判断第一个人应该如何拿,即余数=n%(L+R)
1.假设这个余数落在[L,R]里面,那么小师妹第一次把余数全抓走,剩下的是(L+R)的倍数,我们知道,小师妹稳赢
2.假设这个余数为L-k (0<k<=L)(个人理解,也就是说小于L)里面,那么因为只能抓[L,R]个珠子,小师妹动不了余数这个数目,她只能先动(L+R)里面合法的某些数目,那么第二个人能对应着拿掉小师妹在(L+R)里面剩下的数目,情况变成小师妹稳输
3.假设这个余数落在R+L-k (0<k<L)(个人理解,也就是说大于L)里面,那么小师妹第一次拿走R个,剩下的数目为L-k即把第二种状态丢给对方,小师妹稳赢
上代码:
#include<iostream>using namespace std;int main(){ ios::sync_with_stdio(false); int T; cin>>T; while(T--) { int n,l,r; cin>>n>>l>>r; int yet_have=n%(l+r); if(yet_have<=r && yet_have>=l) { cout<<"Win\n"; } else if(yet_have>r) { cout<<"Win\n"; } else { cout<<"Lose\n"; } }}
- 2016Y GDUT新生杯初赛 Problem D: 有趣的游戏
- 2016Y GDUT新生杯初赛 Problem B: 签到题
- 2016Y GDUT新生杯初赛 Problem C: 算罚时
- 2016Y GDUT新生杯初赛 Problem E: 套套套
- 2016Y GDUT新生杯初赛 Problem F: 吃豆豆
- 2016Y GDUT新生杯初赛 Problem I: 神枪手TMK
- 2016Y GDUT新生杯初赛 Problem J: 神龙的烦恼(初赛更新完结)
- 2016Y GDUT新生杯初赛 Problem H: 神奇的清华大大的神奇魔法
- 2016Y GDUT新生杯初赛 Problem A: 贪吃的zhazhahe
- 2016Y GDUT新生杯初赛 Problem G: Pigofzhou和他的那么多个学妹
- GDUT 2016新生赛D题 有趣的游戏
- 2016 Y GDUT新生杯决赛 Problem F: 神偷TMK
- 2016 Y GDUT新生杯决赛 Problem G: 神偷TMK后续
- GDUT新生赛—D
- 2016广东工业大学新生杯决赛:Problem D: 勤奋的涟漪2
- GDUT初赛题解
- 2016广东工业大学新生杯决赛:Problem I: 只会做水题的jiakin
- 2015广工校赛 Problem E: GDUT的实验室
- JS操作日期,获取当前日期,加一天,减一天
- Python爬虫代理池
- 使用ganymed-ssh2调用自己配置的命令
- 优秀logo,最基础的设计技巧(二)
- 【C++】【不定期更新】粗心错误大杂烩
- 2016Y GDUT新生杯初赛 Problem D: 有趣的游戏
- 工厂方法模式
- XAMPP安装以及使用
- unity3D-游戏/AR/VR在线就业班 C#入门方法参数学习笔记
- TFCalc3.5.b12下载
- Qt Open Source Download
- 2016Y GDUT新生杯初赛 Problem E: 套套套
- 贪心算法解决tsp问题
- 进制转换-----十进制转换成二进制