【杭电】[1722]Cake

来源:互联网 发布:b站知名UP主黑历史知乎 编辑:程序博客网 时间:2024/06/06 05:52

这里写图片描述
这里写图片描述

其实找规律可以想出来

规律可以这么解释:如果要能把它分为等值的p份或q份,那么我们可以先分为d(最大公约数)=gcd(p,q)份,因为当你分为d份的时候,你可能选择将每份分为p/d份(也就是把整体分为p份),也可以选择将每份分为q/d份(也就是把整体分为p份),这两种选择里,肯定不会有切到相同位置的一刀!所以我们可以得到公式:s=p+q-gcd(p,q);

#include<stdio.h>int gcd(int a,int b) {    if(b==0)        return a;    return gcd(b,a%b);}int main() {    int n,m;    while(scanf("%d %d",&n,&m)!=EOF)        printf("%d\n",n+m-gcd(n,m));    return 0;}

题目地址:【杭电】[1722]Cake

0 0
原创粉丝点击