当前位置:网站首页>信息学奥赛一本通 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;
}
边栏推荐
- BCryptPasswordEncoder的使用及原理
- Metaverse Web 3.0 和 DeFi大师班
- 论文阅读之《DeepIlluminance: Contextual IlluminanceEstimation via Deep Neural Networks》
- 592. Fraction Addition and Subtraction
- 阿里SIM-基于检索的用户行为兴趣CTR模型(Search-based user Interest Model(SIM))
- 自动化早已不是那个自动化了,谈一谈自动化测试现状和自我感受……
- C陷阱与缺陷 第6章 预处理器 6.2 宏并不是函数
- 952. 按公因数计算最大组件大小 : 枚举质因数 + 并查集运用题
- Graph Attention Mechanism
- Logback的使用
猜你喜欢
Py程序员的七夕情人节
FP6600QSO SOP-8 USB专用充电端口控制器 用于快充电协议和QC2.0/3.0
Error occurred while trying to proxy request The project suddenly can't get up
Metaverse Web 3.0 和 DeFi大师班
知识蒸馏3:YOLOV5项目准备
从零开始的Multi-armed Bandit
592. Fraction Addition and Subtraction
论文阅读之《Quasi-Unsupervised Color Constancy 》
基于stm32的shell实现
Mathematical Principles of Graph Convolutional Neural Networks——A Preliminary Study on Spectral Graph Theory and Fourier Transform
随机推荐
weiit新零售小程序如何探索数字化门店的破局之路
向量检索基础方法总结
(18)[系统调用]追踪系统调用(服务表)
BCryptPasswordEncoder的使用及原理
How Google earth engine realizes the arrangement and selection of our time list
Daily practice------Generate 13-digit bar, Ean-13 code rule: The thirteenth digit is the check code obtained by the calculation of the first twelve digits.
WeChat applet picker scroll selector use detailed explanation
线程同步 控制执行顺序
测试.net文字转语音模块System.Speech
KDD 2020 | 深入浅出优势特征蒸馏在淘宝推荐中的应用
LeetCode167:有序数组两数之和
首发!阿里技术大牛最新耗时半个月整理出最全MySQL性能优化和高可用架构技术宝典,直接封神!
Deep Feedback Network for Recommendation
Servo System of Hydraulic Steering Gear Based on Fuzzy PID
什么是无损检测设备?
华为无线设备配置Mesh业务
[MRCTF2020]Ezaudit
C# 连接SQL Sever 数据库与数据查询实例 数据仓库
crontab报错,但本地执行正常
优酷视频元素内容召回系统:多级多模态引擎探索