luogu-P10570 [JRKSJ R8] 网球

题目传送门:

[JRKSJ R8] 网球 - 洛谷https://www.luogu.com.cn/problem/P10570

解题思路

数学问题,暴力这个范围会超时。

首先,找出这两个数的最大公因数,将这两个数分别除以最大公因数,则这两个数互质,判断如果有一方<=c,求出他们翻倍的倍数(ceil(c*1.0/min(a,b))),那么将他们分别乘ceil(c*1.0/min(a,b))(这里如果用循环会超时),即可求出a+b最小值,这里主要考察两个数除最大公因数为互质,即结果会最小。

代码

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
long long gcd(long long a,long long b)
{
    return b?gcd(b,a%b):a;
}
int main()
{
    long long t,a,b,c,r,x,y;
    for(cin>>t; t; t--)
    {
        scanf("%lld%lld%lld",&a,&b,&c);
        r=gcd(a,b); //求出最大公因数,使他们互质 
        a/=r;
        b/=r;
        x=a;
        y=b;
        if(x < c || y < c){
        	long long d = ceil(c*1.0/min(a,b)); //求出翻倍的倍数 
        	x = d*a;
        	y = d*b;
		}
        cout<<x+y<<endl; //输出 
    }
    return 0;
}
相关推荐
沐怡旸1 小时前
【算法--链表】114.二叉树展开为链表--通俗讲解
算法·面试
一只懒洋洋2 小时前
K-meas 聚类、KNN算法、决策树、随机森林
算法·决策树·聚类
晚云与城2 小时前
今日分享:C++ Stack和queue(栈与队列)
开发语言·c++
bikong73 小时前
一种高效绘制余晖波形的方法Qt/C++
数据库·c++·qt
方案开发PCBA抄板芯片解密3 小时前
什么是算法:高效解决问题的逻辑框架
算法
深耕AI3 小时前
【MFC文档与视图结构:数据“仓库”与“橱窗”的梦幻联动 + 初始化“黑箱”大揭秘!】
c++·mfc
songx_993 小时前
leetcode9(跳跃游戏)
数据结构·算法·游戏
励志不掉头发的内向程序员3 小时前
STL库——二叉搜索树
开发语言·c++·学习
小白狮ww4 小时前
RStudio 教程:以抑郁量表测评数据分析为例
人工智能·算法·机器学习
AAA修煤气灶刘哥4 小时前
接口又被冲崩了?Sentinel 这 4 种限流算法,帮你守住后端『流量安全阀』
后端·算法·spring cloud