当前位置: 代码迷 >> 综合 >> HDU 1722 Cake *
  详细解决方案

HDU 1722 Cake *

热度:109   发布时间:2023-09-23 03:48:03.0

假设 p=2,q=3

HDU 1722 Cake *

把他们重合,尽可能多的边重合

HDU 1722 Cake *


重合的边就是 gcd(p,q)

所以答案就是 p+q-gcd(p,q)

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cctype>
#include <cmath>
#include <sstream>
#include <vector>
using namespace std;
#define REP(i,a,b) for(int i=a;i<(int)b;i++)
#define REPD(i,a,b) for(int i=a;i>=(int)b;i--)int gcd(int a, int b){return b==0 ? a : gcd(b,a%b);
}int main()
{int p,q;while(scanf("%d%d",&p,&q)==2)printf("%d\n", p+q-gcd(p,q));return 0;
}