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;
}
相关推荐
NiceCloud喜云5 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
小羊在睡觉5 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
cjhbachelor5 小时前
c++继承
c++
3DVisionary5 小时前
蓝光三维扫描:医疗制造的精度焦虑怎么解
人工智能·算法·制造·蓝光三维扫描·医疗制造·三维检测·义齿检测
好评笔记5 小时前
机器学习面试八股——常用损失函数
人工智能·深度学习·算法·机器学习·校招
weixin_468466855 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
肩上风骋5 小时前
C++14特性
开发语言·c++·c++14特性
_日拱一卒6 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
珂朵莉MM6 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--束搜索
人工智能·算法
Omics Pro7 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言