当前位置:网站首页>信息学奥赛一本通 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;
}
边栏推荐
- 浅谈在线编辑器中增量编译技术的应用
- JMeter Notes 4 | JMeter Interface Introduction
- 升级 MDK 5.37 后的问题处理: AC6编译选项, printf, 重启失效等
- leetcode:1488. 避免洪水泛滥【二分 + 贪心】
- 有效的括号字符串[贪心练习]
- 论文阅读之《Quasi-Unsupervised Color Constancy 》
- Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法
- C陷阱与缺陷 第7章 可移植性缺陷 7.4 字符是有符号数还是无符号数
- Wanhua chemical fine chemical industry innovation product assembly
- 测试.net文字转语音模块System.Speech
猜你喜欢

每日一题:两数之和

FP6600QSO SOP-8 USB专用充电端口控制器 用于快充电协议和QC2.0/3.0

LeetCode318:单词长度的最大乘积
![[Geek Challenge 2020] Roamphp1-Welcome](/img/3b/2fa91f7478b8abf6efe0feafd24e58.png)
[Geek Challenge 2020] Roamphp1-Welcome
![(18)[系统调用]追踪系统调用(服务表)](/img/05/2529e49932f7bdc9d30f7d267a1d29.png)
(18)[系统调用]追踪系统调用(服务表)

windwons 下GPU环境和pytorch安装

Redis缓存穿透-热点缓存并发重建-缓存与数据库双写不一致-缓存雪崩

Oracle动态监听与静态监听详解

Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法

分账系统二清解决方案如何助力电商平台合规经营?
随机推荐
C陷阱与缺陷 第6章 预处理器 6.4 宏并不是类型定义
想要写出好的测试用例,先要学会测试设计
KDD 2020 | 深入浅出优势特征蒸馏在淘宝推荐中的应用
Test Management and Specification
真正懂经营管理的CIO具备哪些特质
SLIM: Sparse Linear Methods (TopN推荐)
Tensorflow中实现正则化
C陷阱与缺陷 第6章 预处理器
什么是工业射线照相设备?
Logback的使用
链表Oj练习题 纯C语言
Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法
关于内和调试无法查看ntdll内存的问题
Microsoft Office 2019 software download and installation detailed tutorial!
Summary of String Copy, Concatenation, Comparison and Split Functions (1)
Google earth engine如何实现我们时间列表的排列和选取
数据库系统原理与应用教程(065)—— MySQL 练习题:操作题 62-70(九):分组查询与子查询
中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
阿里巴巴CAN:Embedding前置的特征交互新思路
优酷视频元素内容召回系统:多级多模态引擎探索