蛋糕切割【数论,数学】
题目大意:
题目链接:http://10.156.31.134/contestnew.aspx?cid=128
求一个的矩阵的对角线经过格子的个数。
思路:
有一个显然的结论:当互质时,该矩形的对角线不会经过任意格子之间的点。只会穿过边。反之,的矩阵对角线经过的节点集合为。
所以任意的不互质的情况均可以拆分成个相同的情况来求。
若互质,为了从左下角到达右上角,它的对角线必然会向上个格子,向右个格子。减去重复的一个,所以必然会经过个格子。
代入,答案即为。
代码:
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;
int a,b;
int main()
{
scanf("%d%d",&a,&b);
int gcd=__gcd(a,b);
printf("%d",((a/gcd)+(b/gcd)-1)*gcd);
return 0;
}