【排序】洛谷 P1458 顺序的分数 Ordered Fractions
来源:互联网 发布:上海卓易科技 大数据 编辑:程序博客网 时间:2024/06/06 18:13
题目描述
输入一个自然数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;}
0 0
- 【排序】洛谷 P1458 顺序的分数 Ordered Fractions
- 洛谷 P1458 顺序的分数 Ordered Fractions
- Ordered Fractions顺序的分数
- usaco顺序的分数 Ordered Fractions
- USACO2.1 顺序的分数 Ordered Fractions
- [USACO2.1]顺序的分数 Ordered Fractions
- Usaco 2.1.2 顺序的分数(Ordered Fractions)
- USACO:2.1.2 Ordered Fractions 顺序的分数
- 【USACO题库】2.1.2 Ordered Fractions顺序的分数.tj
- usaco Ordered Fractions 顺序的分数(两种解法)
- HITOJ Ordered Fractions 1076 (分数排序)
- USACO-Section 2.1 Ordered Fractions(排序)
- USACO-Section2.1 Ordered Fractions [其他][排序]
- Ordered Fractions
- Ordered Fractions
- Ordered Fractions
- Ordered Fractions
- Ordered Fractions
- AndroidStudio导入项目在一直在Building gradle project info
- 自定义圆形进度条
- GMM聚类方法
- 【C#】获取泛型<T>的真实类型
- 艺术玻璃电视背景墙
- 【排序】洛谷 P1458 顺序的分数 Ordered Fractions
- Android-json解析(二):Jackson的使用
- iOS开发常用的宏
- 【luogu1280】尼克的任务(dp)
- mysql-5.7.18基本操作命令
- Leetcode 134. Gas Station
- 关于xx-net的小细节
- HQL语句多表联合查询的视图
- Navicat for Oracle连接数据库时报错"ORA-12737 set ZHS16GBK"