本文主要是介绍Codeforces Round #328 (Div. 2)C. The Big Race(数学gcd lcm),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目连接
题意:比赛时 ,居然理解错题意= =,以为两个人的速度是一样的,然后有个人的只会有一步是w米,另一个人只有一步是b米。。。。
就是一个人每一步是w,一个人每一步是b,终点后是深渊,然后长度是在1–t随机选择一个d作为赛道长度,问不能区分二人胜负的可能。
思路:就是求d%w==d%b = =
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define pb push_back
#define P pair<int,int>
#define cl(a,b) memset(a,b,sizeof(a))
const int maxn=10005;
const int inf=1<<27;int main(){LL t,w,b;while(cin>>t>>w>>b){LL gcd=__gcd(w,b),ans=0;LL x=min(w-1,b-1);if(w*1.0/gcd*b>double(t)){ans=min(x,t);}else {LL lcm=w/gcd*b;LL num=t/lcm;ans+=num*(x+1);ans+=min(t-num*lcm,x);}gcd=__gcd(ans,t);ans/=gcd;t/=gcd;printf("%lld/%lld\n",ans,t);}return 0;
}
这篇关于Codeforces Round #328 (Div. 2)C. The Big Race(数学gcd lcm)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!