luogu P5171 Earthquake

时间:2019-11-08 18:04:16   收藏:0   阅读:82

题目描述

给定 a,b,c ,求满足方程 ax+by?c 的非负整数解个数。

输入格式

输入三个整数 a,,b,,c 。

输出格式

输出一个整数表示答案。


类欧几里得算法

#include<cstdio>
#define int long long
inline int f(int a,int b,int c,int n){
    if(!a)return b/c*(n+1);
    if(a>=c||b>=c) return n*(n+1)/2*(a/c)+(n+1)*(b/c)+f(a%c,b%c,c,n);
    else {int m=(a*n+b)/c; return m*n-f(c,c-b-1,a,m-1);}
}
signed main(){ 
    int a,b,c;
    scanf("%lld%lld%lld",&a,&b,&c); 
    printf("%lld\n",f(a,c%a,b,c/a)+c/a+1);   
}

原文:https://www.cnblogs.com/naruto-mzx/p/11821641.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!