当前位置:网站首页>信息学奥赛一本通 1966:【14NOIP普及组】比例简化 | 洛谷 P2118 [NOIP2014 普及组] 比例简化
信息学奥赛一本通 1966:【14NOIP普及组】比例简化 | 洛谷 P2118 [NOIP2014 普及组] 比例简化
2022-07-30 17:33:00 【君义_noip】
【题目链接】
ybt 1966:【14NOIP普及组】比例简化
洛谷 P2118 [NOIP2014 普及组] 比例简化
【题目考点】
1. 枚举
【解题思路】
观察L的范围,为1~100,因此可以分别枚举A’与B’的值,判断哪一组A’/B’ ≥ A/B,并找出A’/B’- A/B最小的那一组值。
对于A’与B’是否互质,可以预先判断二者的最大公约数是否为1。
这一步不做其实也可以。由于A’与B’都是从小到大遍历的,对于A’/B’比值相同的情况,一定是先遍历到A’与B’互质的情况,后遍历到二者不互质的情况。在求最小值时只需要使用’<',即可取到前面的情况而不取后面的情况。
【题解代码】
解法1:使用最大公约数函数判断二者是否互质
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
int gcd(int a, int b)
{
if(b == 0)
return a;
return gcd(b, a%b);
}
int main()
{
int a, b, l, ri, rj;//ri,rj记录结果
double d, d1, mind = INF;//mind:最小差值
cin >> a >> b >> l;
d = (double)a/b;//A/B
for(int i = 1; i <= l; ++i)
for(int j = 1; j <= l; ++j)
{
//i:A' j:B'
if(gcd(i, j) == 1)//最大公约数为1,二者互质
{
d1 = (double)i/j;
if(d1 >= d && d1-d < mind)
{
mind = d1-d;
ri = i;
rj = j;
}
}
}
cout << ri << ' ' << rj;
return 0;
}
解法2:不判断互质
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
int main()
{
int a, b, l, ri, rj;//ri,rj记录结果
double d, d1, mind = INF;//mind:最小差值
cin >> a >> b >> l;
d = (double)a/b;//A/B
for(int i = 1; i <= l; ++i)
for(int j = 1; j <= l; ++j)
{
//i:A' j:B'
d1 = (double)i/j;
if(d1 >= d && d1-d < mind)
{
mind = d1-d;
ri = i;
rj = j;
}
}
cout << ri << ' ' << rj;
return 0;
}
边栏推荐
猜你喜欢

ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost3306' (10061)Solution

Express framework connects MySQL and ORM framework

Promise entry to proficient (1.5w word detailed explanation)

公司部门来了个00后测试卷王之王,老油条表示真干不过,已经...

基于stm32的shell实现

论文阅读之《Underwater scene prior inspired deep underwater image and video Enhancement (UWCNN)》

Mathematical Principles of Graph Convolutional Neural Networks——A Preliminary Study on Spectral Graph Theory and Fourier Transform

真正懂经营管理的CIO具备哪些特质

FP6606ACAW4 TQFN-20L (3mmx3mm) USB双端口充电控制器 百盛电子代理

【综合类型第 34 篇】喜讯!喜讯!!喜讯!!!,我在 CSDN 的第一个实体铭牌
随机推荐
crontab报错,但本地执行正常
PyTorch 猫狗分类源代码及数据集
升级 MDK 5.37 后的问题处理: AC6编译选项, printf, 重启失效等
X射线的应用是什么?
Express framework connects MySQL and ORM framework
FP6606CMP5 CPC-16L USB类型-C和PD充电控制器 百盛电子代理商
超声波探伤仪是做什么用的?
【综合类型第 34 篇】喜讯!喜讯!!喜讯!!!,我在 CSDN 的第一个实体铭牌
华为无线设备配置Mesh业务
数据库系统原理与应用教程(067)—— MySQL 练习题:操作题 82-89(十一):数据的增、删、改操作
自动化早已不是那个自动化了,谈一谈自动化测试现状和自我感受……
快使用flyway管理sql脚本吧~
leetcode:1488. 避免洪水泛滥【二分 + 贪心】
C陷阱与缺陷 第6章 预处理器 6.1 不能忽视宏定义中的空格
Dive deep on Netflix‘s recommender system(Netflix推荐系统是如何实现的?)
想要写出好的测试用例,先要学会测试设计
什么是无损检测设备?
Research on intelligent charging strategy of matlab simulink lithium-ion battery
升级Win11后不喜欢怎么退回Win10系统?
论文阅读之《DeepIlluminance: Contextual IlluminanceEstimation via Deep Neural Networks》