P5656 【模板】二元一次不定方程 (exgcd)

解题思路:扩展欧几里得和小知识点的运用。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double lf;
typedef unsigned long long ull;
typedef pair<ll,int>P;
const int inf = 0x7f7f7f7f;
const ll INF = 1e16;
const int N = 1e5+10;
const ull base = 131;
const ll mod =  1e9+7;
const double PI = acos(-1.0);
const double eps = 1e-4;inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
inline string readstring(){string str;char s=getchar();while(s==' '||s=='\n'||s=='\r'){s=getchar();}while(s!=' '&&s!='\n'&&s!='\r'){str+=s;s=getchar();}return str;}
int random(int n){return (int)(rand()*rand())%n;}
void writestring(string s){int n = s.size();for(int i = 0;i < n;i++){printf("%c",s[i]);}}
ll fast_power(ll a,ll p){ll ans = 1;while(p){if(p&1) ans = (ans*a)%mod;p >>= 1;a = (a*a)%mod;}return ans;
}void exgcd(ll a,ll b,ll &x,ll &y){if(b == 0){x = 1;y = 0;return;}exgcd(b,a%b,y,x);y -= a/b*x;
}
void fun(int a,int b,int c){for(int x = 1;x <= c;x++){for(int y = 1;y <= c;y++){if(x*a+y*b == c){printf("%6d%6d\n",x,y);}}}
}void solve(ll a,ll b,ll c){ll x,y;exgcd(a,b,x,y);ll d = __gcd(a,b);if(c%d){puts("-1");return;}ll p1 = b/d,p2 = a/d;x = x*c/d;//求出通解的xy = y*c/d;//求出通解的yll min_x = (x%p1+p1)%p1,min_y = (y%p2+p2)%p2;//这一步可以求出x和y最小的非负整数if(min_x == 0) min_x = p1;//如果为0的话,需要加上p1if(min_y == 0) min_y = p2;ll max_x = (c-b*min_y)/a;//根据最小的y和x求出相对应的最大x和yll max_y = (c-a*min_x)/b;//if(max_y <= 0){//表示答案只能为负数printf("%lld %lld\n",min_x,min_y);}else {ll cnt = (max_x-min_x)/p1+1;//统计出个数printf("%lld %lld %lld %lld %lld\n",cnt,min_x,min_y,max_x,max_y);}
}
int main(){//srand((unsigned)time(NULL));//freopen(  "out.txt","w",stdout);int t = read();while(t--){ll a = read(),b = read(),c = read();solve(a,b,c);}return 0;
}

P5656 【模板】二元一次不定方程 (exgcd)(公约数)相关推荐

  1. P5656 【模板】二元一次不定方程(exgcd)

    题目传送门 题意: 给定不定方程ax+by=c. 若该方程无整数解,输出 -1 若该方程有整数解,且有正整数解,则输出其正整数解的数量,所有正整数解中 x 的最小值,所有正整数解中 y 的最小值,所有 ...

  2. P5656 【模板】二元一次不定方程 (exgcd)

    先给出代码再说细节吧 #include<bits/stdc++.h> using namespace std; #define ll long long #define LOCALll e ...

  3. 如何求解二元一次不定方程的整数解

    这里讨论的二元一次不定方程专指ax+by=c(a*b≠0,a,b,c∈Z)-----① 定理一: 方程①有整数解的充分必要条件是(a,b)|c((a,b)即Gcd(a,b),下同) 定理二(裴蜀定理) ...

  4. C++ 二元一次不定方程巧妙求解——运用扩展欧几里得算法

    前言 在关于数论的学习中,求解二元一次不定方程是很重要的,在学习求解二元一次不定方程之前,要先了解欧几里得算法和扩展欧几里得算法. 关于数论的学习 欧几里得算法 欧几里得算法就是辗转相除法,欧几里得算 ...

  5. 二元一次不定方程的快速解法

    二元一次不定方程(形如 a * x + b * y = c的方程,又叫丢番图方程,下简称不定方程),是初等数论经典的研究对象.二元一次不定方程应用广泛,如经典的找换问题和装箱问题(下面我将通过一系列的 ...

  6. 二元一次不定方程的整数解(扩展欧几里得算法)

    二元一次不定方程的整数解(扩展欧几里得算法) (不得不说这是一堂数学*信竞课) 整数解解法 c(mod b)或ax+by=c有整数解当且仅当(a,b)|c 一般意义下的解法: 欧拉函数 扩展欧几里得算 ...

  7. 初等数论--同余方程--二元一次不定方程的通解形式

    初等数论--同余方程--二元一次不定方程的通解形式 博主是初学初等数论(整除+同余+原根),本意是想整理一些较难理解的定理.算法,加深记忆也方便日后查找:如果有错,欢迎指正. 我整理成一个系列:初等数 ...

  8. c语言不定方程的二元一次,poj1061 - 同余方程,二元一次不定方程

    以前不会解二元一次不定方程的时候不会做,现在会做了. #include #include using namespace std; typedef __int64 int64; void solveT ...

  9. 二元一次不定方程的整数解

    先来看看一个典型的二元一次不定方程: a x + b y − c = 0 a , b , c ∈ z x , y ∈ z ax+by-c=0\\ a,b,c\in\mathbb{z}\\x,y\in\ ...

  10. 二元一次不定方程的解法

    二元一次不定方程的解法 时间:2008-12-17 14:47 点击: 147次 我们知道,如果未知数的个数多于方程的个数,那么,一般来说,它的解往往是不确定的,例如方程 x-2y=3, 方程组 等, ...

最新文章

  1. selenium持续集成_使用Selenium进行Spring Boot集成测试
  2. 【转】3.3(译)构建Async同步基元,Part 3 AsyncCountdownEvent
  3. java基础基础总结----- Date
  4. 恐怖地狱火恶魔叉404模板下载
  5. C#中Delegate和Event以及它们的区别
  6. 利用卷积自编码器对图片进行降噪
  7. linux虚拟机上lvs-nat的实现
  8. matlab 对数函数表示,matlab对数函数怎么表示
  9. Exchange 2010安装先决条件及注意事项
  10. koa利用koa-views通过路由返回html页面
  11. R语言将数值转换为比例
  12. github里的默认域_研究人员如何使用Shhgit搜索GitHub中的敏感数据
  13. Windows11微软官方网址下载地址(2021年11月更新)
  14. 网络能ping通,浏览器无法上网
  15. 网页设计与网站规划 作业05 电影宣传效果
  16. 【转自杨建荣博客】通过执行计划中的CONCATENATION分析sql问题
  17. visual fortran run-time error can45_64.dll
  18. 2020 年值得关注的20个区块链项目,来看看今年该把目光放在哪?
  19. 玩转搭载眼球追踪的FOVE 0,需要多高的配置呢?
  20. elasticsearch使用7大原则,轻松玩转ES

热门文章

  1. 人们熟知的一句名言是:“天才是1%的灵感加99%的汗水。”可如果没有那1%的灵感,世界上所有的汗水也就仅仅是一桶汗水而已。...
  2. go老鸟也会经常出现 并发channal问题引起的协程泄漏
  3. S1 data forwarding测试方法
  4. Matlab求一阶导数
  5. 针对Faster RCNN具体细节以及源码的解读之SmoothL1Loss层
  6. 论文总结之任务型对话NLU
  7. 什么电子邮箱正式?企业工作邮箱大全,一般白领用什么邮箱账号?
  8. 网贷风控体系之-风控模型
  9. 工作绩效数据、工作绩效信息、工作绩效报告
  10. java 调用felix_寻找在动态加载Jar文件中使用Apache Felix并在Java中在运行时实例化类的基本示例...