| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 967 人关注过本帖
标题:ACM一道题目 C语言的,求大神给解答,给出代码
只看楼主 加入收藏
qq873950124
Rank: 2
等 级:论坛游民
帖 子:5
专家分:34
注 册:2016-12-10
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
ACM一道题目 C语言的,求大神给解答,给出代码
Problem Description
CZJ和L2M在车上闲着没事拿了个水杯灌水,规定杯子的体积P和每次可以倒进杯子的水的最大体积Y,两个人轮流向杯子灌整数体积的水,最后灌满杯子的人获胜。\\
CZJ看起来很想赢的样子,L2M宽宏大量的给了先手。但是CZJ这么菜,你能教下CZJ起手要灌多少才能必胜吗?
Input
第一行是一个T,代表数据的组数T(T≤20000)。每组两个整数p,y(1≤p≤10000000,1≤y≤10000000)。
Output
对于每组数据输出CZJ起手灌水的数量,如果CZJ赢不了,打出GG。
Sample Input

2
3 1
2 1

Sample Output

1
GG

Author
搜索更多相关主题的帖子: C语言 水杯 
2016-12-10 00:24
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
大家为了争取获胜,都尽量减少灌水量,两人每次灌水量之和最少为2,必胜方保证灌水量y和p-y的值奇偶性相同~并且在p-y>1的情况下成立

有点像取牙签,两个人轮流取,每次只能取一根或者两根,当牙签数不为3时,先取者必胜。如果牙签要求为奇数,则先取者取两根,如果牙签要求为偶数,则先取者必胜取一根。

当然由于y是可设的,因此这涉及到蜗牛爬井的问题~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-10 00:52
qq873950124
Rank: 2
等 级:论坛游民
帖 子:5
专家分:34
注 册:2016-12-10
收藏
得分:0 
undefined
不一定一定要降低灌水量额,比如总数为6,最大为2时,A 方先出1,B方此时如果出1,那么A方第二次出1,B方不管出1或2都输了,但是如果B方第一次就出2,则A方第二次出1或2都输。
2016-12-10 01:31
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:20 
对哦,突然想到了,举个例子:p=100,y=10,那会先灌1,当灌水量为89时,先灌水者必败。因此必胜者只需保证灌水量为89,通过递归,如果要保证灌水量为89,那就要保证灌水量78,67,56,……,12,1。

必胜方灌水量要保证p-(n*y+1)(n为正整数)

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-10 13:52
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
是 p % (y + 1)

为 0 则 GG


[fly]存在即是合理[/fly]
2016-12-15 09:10
快速回复:ACM一道题目 C语言的,求大神给解答,给出代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017014 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved