hdu 1722 Cake

来源:互联网 发布:免费的云计算平台 编辑:程序博客网 时间:2024/06/09 19:16

思路:最大公约数  +  数学公式

具体做法:p+q-gcd(p,q)

至于为什么gcd(p,q)是两种切法的公共部分:可以这么考虑,k=gcd(p,q),1/k可以整除1/p和1/q,即将蛋糕切成k份,无论是切p份还是切q份都可以满足要求,切痕重合。

#include <iostream>#include <algorithm>using namespace std;int gcd(int m,int n){    if(m%n==0) return n;    else    gcd(n,m%n);}int lcm(int m,int n){    return m/gcd(m,n)*n;}int main(){    int a,b,p,q,num;    while(cin>>p>>q)    {            a = min(p,q);    b = p+q-a;    num = lcm(a,b)/b*(b-a) +a;    cout << num << endl;    }//cout << "Hello world!" << endl;    return 0;}


0 0
原创粉丝点击