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

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

开头很文艺的一段说明, 2333。

题解:布什博弈的变形, 谁最后一次取谁输。如果留下了[1,p]的石子个数那么接下来取的那个人就一定输了。

现在要求的是新手赢, n%(p+q) > p 的话, 先手可以将余数从>p, 取成 小于一个p的值, 然后这个人对于剩下的石子来讲就是后手了, 然后根据布什博弈的道理, 控制区间, 然后留下 小于p的那个值就好了。

如果n % (p+q) == 0 那么先手取最大的情况就好了, 就如同样例 6 2 4 先手取4, 后手必须要把2都拿走, 后手就输了。

代码:

1 #include
2 using namespace std; 3 #define LL long long 4 #define ULL unsigned LL 5 #define fi first 6 #define se second 7 #define lson l,m,rt<<1 8 #define rson m+1,r,rt<<1|1 9 #define max3(a,b,c) max(a,max(b,c))10 const int INF = 0x3f3f3f3f;11 const LL mod = 1e9+7;12 typedef pair
pll;13 int n, p, q;14 int main(){15 while(~scanf("%d%d%d", &n, &p, &q)){16 if(n%(p+q) == 0 || n%(p+q) > p) puts("WIN");17 else puts("LOST");18 }19 return 0;20 }

 

转载于:https://www.cnblogs.com/MingSD/p/8583446.html

你可能感兴趣的文章
java 基础
查看>>
【Android】Android6.0发送短信Demo
查看>>
《徐徐道来话Java》:PriorityQueue和最小堆
查看>>
微信支付中的刷卡支付和扫码支付测试
查看>>
中国金融出版社出版的2013版《风险管理》
查看>>
BZOJ1055: [HAOI2008]玩具取名[区间DP]
查看>>
【转】iOS 10 UserNotifications 使用说明
查看>>
英文投稿模板
查看>>
计算机网络常见英文缩写
查看>>
Esper epl语句实验
查看>>
使用phpize建立php扩展(Cannot find config.m4)
查看>>
【TensorFlow】CNN
查看>>
redis cli命令
查看>>
C#中委托和事件的区别
查看>>
数据库操作
查看>>
CLIPS
查看>>
HBase中数据的多版本特性潜在的意外
查看>>
僵还是老的la,看myeclipse的spring mvc3 scaffolding 完胜sts
查看>>
网上开店进货渠道大参考
查看>>
经典语录
查看>>