首页 > 其他分享 >USACO备考冲刺必刷题 | P1458 Ordered Fractions

USACO备考冲刺必刷题 | P1458 Ordered Fractions

时间:2024-12-19 09:28:03浏览次数:7  
标签:Fractions 分数 fra Ordered int res 自然数 P1458 node

学习C++从娃娃抓起!记录下USACO(美国信息学奥赛)备考学习过程中的题目,记录每一个瞬间。

附上汇总贴:USACO备考冲刺必刷题 | 汇总-CSDN博客


【题目描述】

输入一个自然数 n,对于一个最简分数 a/b(分子和分母互质的分数),满足 1≤bn,0≤a/b≤1,请找出所有满足条件的分数。

这有一个例子,当 n=5 时,所有解为:

 

 

3e31bfb5067614f96f8163a6e354323e.png

 

给定一个自然数 n,请编程按分数值递增的顺序输出所有解。

注:

1、0 和任意自然数的最大公约数就是那个自然数。

2、互质指最大公约数等于1的两个自然数。

【输入】

单独的一行一个自然数 nn

【输出】

每个分数单独占一行,按照大小次序排列

【输入样例】

5

【输出样例】

0/1
1/5
1/4
1/3
2/5
1/2
3/5
2/3
3/4
4/5
1/1

【代码详解】

 

 

429f4dc0e61d139c933a559ab3e104e4.png

 

#include <bits/stdc++.h>
using namespace std;
int n, mark;
struct node {  // 定义分数结构体
    double res;  // 分数结果,注意是double类型
    int a, b;  // 分子和分母
}fra[25600];  // 按照160*160的最大范围开辟结构体数组
int gcd(int a, int b)  // 最大公约数模板(背就完了!)
{
    int r = a % b;
    while (r!=0) {
        a = b;
        b = r;
        r = a % b;
    }
    return b;
}
bool cmp (node x, node y)  // 比较函数,按照res从小到大排序
{
    return x.res<y.res;
}
int main()
{
    cin >> n;  // 输入n
    fra[0].res = 0;  // 数组第1个res为0
    fra[0].a = 0, fra[0].b = 1;  // 分子为0,分母为1
    mark=1;  // 定义计数器
    for (int i=1; i<=n; i++) {  // 从1遍历至n
        for (int j=i; j<=n; j++) {  // 从i遍历至n
            if (gcd(i,j)==1) {  // 如果分子和分母的最大公约数为1
                fra[mark].res = 1.0*i/j;  // 记录分数结果
                fra[mark].a = i, fra[mark].b = j;  // 以及分子和分母
                mark++;  // 计数器自增1
            }
        }
    }
    sort(fra, fra+mark, cmp);  // 对结构体数组按照res从小到大方式排序
    for (int i=0; i<mark; i++) {  // 依次输出mark-1(因为存完最后一个mark仍自增了1)个分子和分母
        cout << fra[i].a << "/" << fra[i].b << endl;
    }
    return 0;
}

【运行结果】

5
0/1
1/5
1/4
1/3
2/5
1/2
3/5
2/3
3/4
4/5
1/1

 

标签:Fractions,分数,fra,Ordered,int,res,自然数,P1458,node
From: https://blog.csdn.net/guolianggsta/article/details/134611688

相关文章

  • Codeforces Round 992 (Div. 2) C. Ordered Permutations
    给出数字n,构造一个符合的数组很容易想到,n1时,只有1符合。n2时,有12;21符合。n==3时,有123;132;231;321;发现必须分为1和2——n的两块数字,有某种递归的感觉,答案与2次方有关于是做出代码:#include<iostream>#include<algorithm>usingnamespacestd;#defineffp(x,y......
  • PTA DS 7-4 航空公司VIP客户查询 (unordered_map) (C++)(全网最新)
    7-4航空公司VIP客户查询分数25全屏浏览切换布局作者 DS课程组单位 浙江大学不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务。现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快......
  • C++:unordered_map与unordered_set详解
    文章目录前言一、KeyOfT1.为什么需要仿函数?2.MapKeyOfT与SetKeyOfT代码实现二、迭代器1.设计背景2.为什么需要存储哈希表指针3.operator++的逻辑4.begin()和end()的实现5.友元和前置声明的作用6.完整代码三、迭代器map与set的复用1.map的复用,数据pair<K,......
  • 《 C++ 修炼全景指南:十三 》为什么你的代码不够快?全面掌控 unordered_set 和 unordere
    摘要本文深入探讨了C++标准库中的两大无序容器——unordered_set和unordered_map,从底层实现、核心操作、性能优化、实际应用等多个方面进行了全面分析。首先,文章介绍了这两种容器的基本概念,说明了它们基于哈希表实现的特点,尤其是在查找、插入和删除操作上具备常数时间......
  • Cpp学习 -- <unordered_map>
    参考网站https://www.runoob.com/cplusplus/cpp-libs-unordered_map.html#include<unordered_map>在C++中,<unordered_map>是标准模板库(STL)的一部分,提供了一种基于哈希表的键值对容器。与std::map不同,unordered_map不保证元素的排序,但通常提供更快的查找速度。unord......
  • Leetcode—815. 公交路线【困难】(unordered_map+queue)
    2024每日刷题(163)Leetcode—815.公交路线bfs实现代码classSolution{public:intnumBusesToDestination(vector<vector<int>>&routes,intsource,inttarget){if(source==target){return0;}unordered_map<......
  • datastructure与算法 orderedPair
    /**  Aninterfacethatdescribestheoperationsofasetofobjects.  @authorCharlesHoot,FrankM.Carrano  @version4.0*/publicinterfaceSetInterface<T>{  /**Getsthecurrentnumberofentriesinthisset.    @return Theintegernum......
  • unordered系列容器的实现
    1.unordered_set与unordered_map的结构我们知道STL中的unordered_set与unordered_map底层就是一个开散列的哈希表1.1unordered_set的结构我们知道unordered_set其实就是K模型,所以unordered_set容器对红黑树的封装如下: template<classk,classHash=Hashfunc<k>> cla......
  • BugKu CTF Misc:被勒索了 & disordered_zip & simple MQTT & 请攻击这个压缩包
    前言BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了各种不同类型的漏洞场景,如Web漏洞、系统......
  • Open3d Create_from_cloud_alpha_shape 错误:无效的 unordered_map
    我在open3d中的create_from_point_cloud_alpha_shape方面遇到问题。这是我的代码。importopen3daso3dimportnumpyasnpmesh=o3d.io.read_triangle_mesh('Bunny.stl')print(mesh)pcd=mesh.sample_points_poisson_disk(750)alpha=0.3mesh=o3d.geome......