取(2堆)石子游戏

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1587    Accepted Submission(s): 962

Problem Description

两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆
中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是
败者。如果你胜,你第1次怎样取子?
 
Input
输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,且a<=b。a=b=0退出。
 
Output
输出也有若干行,如果最后你是败者,则为0,反之,输出1,并输出使你胜的你第1次取石子后剩下的两堆石子的数量x,y,x<=y。如果在任意的一堆中取走石子能胜同时在两堆中同时取走相同数量的石子也能胜,先输出取走相同数量的石子的情况.
 
Sample Input
1 2
5 8
4 7
2 2
0 0
 
Sample Output
0
1
4 7
3 5
0
1
0 0
1 2
 
Author
Zhousc
 
Source
 
Recommend
lcy   |   We have carefully selected several similar problems for you:  2176 2180 1536 1850 1729
 
前面的判断就是套模板,威佐夫的原理明白了,套模板自然就容易了,下面输入步骤的过程暴力就可以,具体暴力的详解我都在后面注释了
 
弱爆了----->比赛前的最后准备
#include<stdio.h>
#include<string.h>
#include<math.h>
int a, b;
int main(){
double x = ( + sqrt(5.0))/2.0;//矩阵黄金分割数
int i,k,temp,n,m;
while(scanf("%d%d",&a,&b)!=EOF&&(a+b))
{
if(a>b)
{
temp = a;
a=b;
b=temp;
} k=b-a;
if((int)(k*x)==a)//判断是否为奇异状态,
printf("%d\n",);//若为奇异状态,则先者必败
else
{
printf("%d\n",);
for(i=;i<=a;i++)//先暴力从两堆中一起拿的情况
{
n=a-i;
m=b-i;
k=m-n;
if((int)(k*x)==n)
printf("%d %d\n",n,m);//不用退出循环,根据奇异状态的性质,只会有一个
} for(i=b-;i>=;i--)//在暴力从一个中拿走的情况,
// 此处注意的一个情况就是需要从数量多的那一堆中拿,所以将数量多的那一堆从高到低判断
{
n=a;
m=i;
if(n>m)
{
temp=n;
n=m;
m=temp;
}
k=m-n;
if((int)(k*x)==n)
printf("%d %d\n",n,m);
}
}
}
return ;
}

最新文章

  1. html5 canvas首屏自适应背景动画循环效果代码
  2. kali4.0 下tftpd-hpa服务无法启动的解决方案
  3. 教你写能被舒服舒服又舒服地调用的iOS库
  4. JVM内存简单理解
  5. mapreduce作业状态一直是ACCEPTED
  6. HDU 4455 Substrings --递推+树状数组优化
  7. sql查询 所有被锁定的表
  8. Android 快捷方式相关操作
  9. Windows 8.1 store app 开发笔记
  10. Ubuntu12.04安装配置Theano
  11. Mac下如何配置环境变量JDK
  12. 品牌电脑硬盘损坏后,使用MediaCreationTool从微软官方下载正版Windows到USB做安装盘
  13. Scaleform Gfx的Demo
  14. HashMap源码解读
  15. 牛客网剑指Offer——正则表达式匹配
  16. 常见的web安全及防护原理
  17. spark-机器学习实践-K近邻应用实践一
  18. MongoDB C# 驱动的各种版本下载地址
  19. 关于varchar(max), nvarchar(max)和varbinary(max)
  20. 掌握新变革,解密新趋势|msup第29届MPD软件管理工作坊成功召开

热门文章

  1. scrapy安装遇到的Twisted问题
  2. TFS数据库分离附加经验总结
  3. winform重绘
  4. fgetc, fgets, getc, getchar, gets, ungetc - 输入字符和字符串
  5. MVC使用方法
  6. Django-C001-快速入门
  7. (1)JSTL的13个core标签库
  8. 有C++特色的极乐净土
  9. shell脚本,用awk实现替换文件里面的内容。
  10. 前端vue 里的tab切换 减少dom操作