【排序】洛谷 P1458 顺序的分数 Ordered Fractions
2017-05-10 11:27
387 查看
题目描述
输入一个自然数N,对于一个最简分数a/b(分子和分母互质的分数),满足1<=b<=N,0<=a/b<=1,请找出所有满足条件的分数。这有一个例子,当N=5时,所有解为:
0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1/1
给定一个自然数N,1<=n<=160,请编程按分数值递增的顺序输出所有解。
注:①0和任意自然数的最大公约数就是那个自然数②互质指最大公约数等于1的两个自然数。
输入输出格式
输入格式:单独的一行一个自然数N(1..160)
输出格式:
每个分数单独占一行,按照大小次序排列
输入输出样例
输入样例#1:5
输出样例#1:
0/1
1/5
1/4
1/3
2/5
1/2
3/5
2/3
3/4
4/5
1/1
说明
USACO 2.1翻译来自NOCOW
代码
#include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int MAXN=1000+10; int a[MAXN],number[4],ans[4]; void read(int &x) { x=0; char c=getchar(); while(c<'0'||c>'9')c=getchar(); while(c>='0'&&c<='9') { x=x*10+c-'0'; c=getchar(); } } int main() { int n; read(n); for(int i=1;i<=n;++i) { read(a[i]); number[a[i]]++; } for(int i=1;i<=n;++i) { if(i<=number[1]) { if(a[i]==3)ans[3]++; else if(a[i]==2)ans[2]++; } else if(i<=number[2]+number[1]&&i>number[1]) { if(a[i]==3)ans[3]++; else if(a[i]==1)ans[1]++; } else break; } printf("%d",ans[3]+max(ans[1],ans[2])); return 0; }
相关文章推荐
- 洛谷 P1458 顺序的分数 Ordered Fractions
- 【排序】【USACO2.1.2】顺序的分数
- 洛谷1458 顺序的分数
- 洛谷1458 顺序的分数
- usaco顺序的分数(随便搞,排序可以)和健康的赫斯坦奶牛(dfs)(水)
- 点了dataGrid一列头后,记录产生了排序,顺序变后,新的记录怎么访问?
- 顺序的分数
- 按照 in (....) 里面的顺序进行排序
- 将对象数组按照每一组对象的key值大小进行字典顺序(ASCII值大小)升序排序
- LinkedHashMap 特性 按插入和访问顺序排序
- Ordered Fractions顺序的分数
- 折半插入排序顺序结构
- python字符串排序(按输入顺序/按字符出现次数/按字符)
- App Inventor 微数据库记录分数并排序
- USACO2.1 顺序的分数 Ordered Fractions
- LinkedHashMap特性 按插入和访问顺序排序
- 按各科平均成绩和及格率的百分数,按及格率高到低的顺序排序
- 实现对编译出来的名次进行顺序排序
- 习题 7.15 写几个函数:1.输入10个职工的姓名和职工号;2.按职工号由小到大顺序排序,姓名顺序也随之调整;。。。
- js对数组按顺序排序