洛谷p1458顺序的分数题解
抱歉,您们的蒟蒻yxj不知道怎么插入链接qwq就只好粘个文本的了qwq:https://www.luogu.org/problemnew/show/P1458
没错,是个黄题,因为你们的小蒟蒻只会这样难度的题qwq
ok,来吧
这道题,读完题目之后,应该题意是比较容易理解的;
题意就是给出一个数,
让您求分母在这个数的范围内并且整个分数要小于等于一的所有的分数,并且还要注意输出的时候是要有顺序的。
那么我们就可以直接枚举,判断并记录。
首先我们输入之后直接来枚举两层for循环找出所有能找出来的分数
for(int i = ; i <= n; i++)
for(int j = ; j <= n; j++)
if(i <= j) {//亲爱的们,这里是一个判断条件,只要分子比分母大我们才可以选他做分数
int rom = gcd(i, j);
if(rom == ) {//其实这两个if完全可以合并到一起也就是只留第二个
head++;
num[head].x = i;
num[head].y = j;
num[head].mal = i * 1.0 / j * 1.0;
}
else if(rom != ) {
head++;
num[head].x = i / rom;
num[head].y = j / rom;
num[head].mal = (i / rom * 1.0) / (j / rom * 1.0);
}
}
gcd 函数判断最大公约数
int gcd(int x,int y) {
return y == ? x : gcd(y, x % y);
}
按照分数的大小来排序
int cmp(zero x,zero y) {
return x.mal < y.mal;
}
最后干干净净的AC代码(个人喜好)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n, head;
struct zero{
int x, y;
double mal;
}num[];
int gcd(int x,int y) {
return y == ? x : gcd(y, x % y);
}
int cmp(zero x,zero y) {
return x.mal < y.mal;
}
int main() {
scanf("%d",&n);
for(int i = ; i <= n; i++)
for(int j = ; j <= n; j++)
if(i <= j) {
int rom = gcd(i, j);
if(rom == ) {
head++;
num[head].x = i;
num[head].y = j;
num[head].mal = i * 1.0 / j * 1.0;
}
else if(rom != ) {
head++;
num[head].x = i / rom;
num[head].y = j / rom;
num[head].mal = (i / rom * 1.0) / (j / rom * 1.0);
}
}
sort(num + , num + + head, cmp);
for(int i = ; i <= head; i++)
if(num[i].mal != num[i + ].mal)
printf("%d/%d\n",num[i].x, num[i].y);
return ;
}
感谢收看~~~
洛谷p1458顺序的分数题解的更多相关文章
- 洛谷P1458 顺序的分数 Ordered Fractions
P1458 顺序的分数 Ordered Fractions 151通过 203提交 题目提供者该用户不存在 标签USACO 难度普及- 提交 讨论 题解 最新讨论 暂时没有讨论 题目描述 输入一个 ...
- 洛谷——P1458 顺序的分数 Ordered Fractions
P1458 顺序的分数 Ordered Fractions 题目描述 输入一个自然数N,对于一个最简分数a/b(分子和分母互质的分数),满足1<=b<=N,0<=a/b<=1, ...
- 洛谷 P1458 顺序的分数 Ordered Fractions
P1458 顺序的分数 Ordered Fractions 题目描述 输入一个自然数N,对于一个最简分数a/b(分子和分母互质的分数),满足1<=b<=N,0<=a/b<=1, ...
- 洛谷P1783 海滩防御 分析+题解代码
洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...
- 洛谷P4047 [JSOI2010]部落划分题解
洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...
- 洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)
洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 ...
- 洛谷10月月赛II题解
[咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...
- [洛谷P1823]音乐会的等待 题解(单调栈)
[洛谷P1823]音乐会的等待 Description N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没 ...
- BZOJ2527 & 洛谷3527:[Poi2011]Meteors——题解
+++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...
随机推荐
- FutureTask源码2
@SuppressWarnings({"unchecked","restriction"}) public class FutureTask1<V> ...
- 23 Maven工程module的移除和重新导入
1.移除module 移除后: 点击右侧的maven projects: 2.重新导入刚才移除的module (1)方法1 (2)方法2 Ctrl+Shift+ALT+S的快捷键 选择modules ...
- JavaIO学习:序列化流
对象流 1.涉及到的类 ObjectInputStream 和 ObjectOutputStream 用于存储和读取基本数据类型数据或对象的处理流. 2.作用 ObjectOutputStream:内 ...
- 深入V8引擎-默认Platform之mac篇(1)
又到了常规的堆砌代码凑文章字数环节,很多API我就直接贴官方的英文释义,个人翻译其实有时候并不是很准确,搞错了甚至会误导,还是尽量自己去理解. 首先看看入口方法. std::unique_ptr< ...
- PHP 垃圾回收机制详解
前言:之前对PHP的GC只是了解了个大概,这次详细了解下PHP的垃圾回收机制(GC). 介于网上大部分都是PHP5.X的GC,虽然 php5 到 php7 GC部分做出的改动较小,但我觉得还是一起写下 ...
- 2019 vs 如何升级到.net core 3.0 版本
写在前面 看到微软的官网都已经更新.NET CORE 3.0的版本了.发现自己的还是.NET CORE 2.1X 的版本. 那应该如果升级到.NET CORE 3.0 的版本呢? 思考 [1]首先,我 ...
- 记录一次排查使用HttpWebRequest发送请求的发生“基础连接已关闭:接收时发生错误”异常问题的过程
描述:某次更新程序,需要给测试员MM测试,之前都是正常的,更新后给MM测试就报异常System.Net.WebException 基础连接已经关闭:接收时发生错误 -------> System ...
- 史上最全的音视频SDK包分享给大家
史上最全的音视频SDK包分享给大家 概述一下SDK功能: 项目 详情视频通信 支持多种分辨率的视频通信语音通信 提供语音通信,可支持高清宽带语音动态创建房间 可以根据需要,随时创建房间H5 支持 ...
- Python文件属性模块Os.path
Python文件属性模块Os.path介绍 os.path模块主要用于文件属性获取和判断,在编程中会经常用到,需要熟练掌握.以下是该模块的几种常用方法. os.path官方文档:http://docs ...
- gulp教程、gulp-less安装
gulp教程之gulp-less gulp详细入门教程 11.1.安装nodejs: 11.2.新建package.json文件:cnpm init 11.3.全局和本地安装gulp: cnpm in ...