【317 兔子的烦恼(二) 】
来源:互联网 发布:易语言注册登录源码 编辑:程序博客网 时间:2024/05/16 17:23
兔子的烦恼(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
在一座山上有n个山洞(每个洞从0~n-1分别编号),这山上有一只兔子躲在山洞里,有一只狼,从编号为0的山洞开始入洞,每隔m个洞,再次入洞抓兔子,现在兔子想知道是否有能避免这场灾难的山洞?
例如:m=2 and n=6, 狼将要进入的山洞号为:0,2,4,可避难的山洞为:1,3,5;
- 输入
- 有多组测试数据,不超过11组;
每组有两个整数m,n(0<m,n<=10000000);
注意:程序以文件结束符“EOF”结束输入。 - 输出
- 兔子能避免这场灾难输出可避难山洞的总数和所有可避难山洞的编号(从小到大输出),否则输出NO;
- 样例输入
1 22 2
- 样例输出
NO1 1
#include<stdio.h>#include<string.h>int a[10000000]={0};int main(){int m,n,i,count;while(scanf("%d %d",&m,&n)!=EOF){ count=0;for(i=0;i<n;i=(i+m)%n){ if(a[i]) //a[i]=1,说明往后面开始循环,所以跳出。break;else{// a[i]=0;把 a[i]=1;a[i]=!a[i];count++;}}if(count){printf("%d ",count);for(i=0;i<n;i++)// 如果a[i]=0;说明兔子可以存活。{if(!a[i]){printf("%d ",i);}}printf("\n");}elseprintf("NO\n");for(i=0;i<n;i++)if(a[i])a[i]=!a[i];}}
这个超时了。
继上次那个最大公约数,最优解:
#include<stdio.h>int gcd(int a,int b){if(b==0)return a;elsereturn gcd(b,a%b);}int main(){int m,n;while(scanf("%d %d",&m,&n)!=EOF){int g;g=gcd(n,m);if(g==1)printf("NO\n");else{printf("%d ",n-n/g);for(int i=1;i<n;i++){if(i%g!=0)printf("%d ",i);}printf("\n");}}}
- 【317 兔子的烦恼(二) 】
- nyoj-317-兔子的烦恼(二)
- NYOJ 317 兔子的烦恼(二)
- NYOJ 317 兔子的烦恼(二)证明
- NYOJ 兔子的烦恼(二)
- NYOJ-兔子的烦恼(二)
- ACM 数论 兔子的烦恼(二)
- nyoj 317-兔子的烦恼(gcd)
- 兔子的烦恼(二) nyoj (规律)
- 兔子的烦恼(一)
- 兔子的烦恼(一)
- 兔子的烦恼(一)
- 兔子的烦恼(一)
- 兔子的烦恼(一)
- NYOJ - 兔子的烦恼(一)
- 兔子的烦恼(一)【NYOJ】
- NYOJ 189 兔子的烦恼(一)
- NYOJ 189 兔子的烦恼(一)
- TopCoder: SmartWordToy BFS算法
- shell运算符
- 黑武器:linux-BT4无线黑客].杨哲&许迅飞&陈伟.扫描版.pDF
- Hadoop添加删除节点
- cppunit 上手
- 【317 兔子的烦恼(二) 】
- 关于java线程池<一>
- Android 的系统属性---SystemProperties分析
- HttpInvokerProxyFactoryBean一个简单例子
- 图片在数据库中的存取
- ubuntu下的shell编程--shell基础入门、shell比较运算符
- 青蛙的约会
- Vim下的Web开发之html,CSS,javascript插件
- 算法的概念