hdu2669 Romantic(扩展欧几里得)
来源:互联网 发布:球球大作战java源代码 编辑:程序博客网 时间:2024/04/29 20:15
http://acm.hdu.edu.cn/showproblem.php?pid=2669
题意:求ax+by=1的最小整数解,其中a为非负数。
思路:确保x是非负数,在a、b、c不变的情况下,若x是负数,只有增大a而减小b。而x和y分别有系数a和b,那么中间用ab作为媒介,ax+ab+by-ab = a(x+b)+b(y-a),每次对x和y操作直到满足条件即可。
#include <stdio.h>#include <algorithm>using namespace std;typedef long long ll;int ext_gcd(ll a, ll b, ll &x, ll &y)//添加引用确保同步更新{ if(b == 0) { x = 1; y = 0; return a; } ll d = ext_gcd(b, a%b, x, y); ll tmp = x; x = y; y = tmp - (a/b)*y; return d;}int main(){ // freopen("in.txt", "r", stdin); ll a, b, c, d; ll x, y, m, n, l; while(~scanf("%lld%lld", &a, &b)) { d = ext_gcd(a, b, x, y); if(1%d != 0) { printf("sorry\n"); continue; } while(x < 0) { x+=b; y-=a; } printf("%lld %lld\n", x, y); } return 0;}
0 0
- hdu2669 Romantic(扩展欧几里得)
- HDU2669:Romantic(扩展欧几里得)
- hdu2669 Romantic(扩展欧几里得入门)
- hdu2669 扩展欧几里得
- hdu2669-Romantic
- hdu2669-Romantic
- HDU2669-Romantic
- HDU2669 Romantic
- Romantic 欧几里得的扩展
- Romantic(扩展欧几里得)
- 扩展欧几里得 Romantic (HDU
- Romantic 扩展欧几里得
- HDU 2669 Romantic 扩展欧几里得
- HDU 2669 Romantic(扩展欧几里得)
- Romantic(扩展欧几里得算法)
- HDU 2669 Romantic (扩展欧几里得)
- hdu 2669 Romantic 扩展欧几里得
- HDU 2669 Romantic [扩展欧几里得]
- 字符串中第一个字符出现的位置
- 生活随笔:开发资金紧张
- “接力者”王川
- Linux环境变量PATH的增添和删除操作
- 个人C语言笔记
- hdu2669 Romantic(扩展欧几里得)
- android studio 的MVVM架构总结
- crack me160题 第十五题(序号11)Andrénalin 分析
- NOIP提高组2016总结
- 在使用lua的tolua的内存泄露注意
- JavaScript基本概念(一)
- A new Chapter----AFO
- Linear Algebra - Lesson 16. 投影矩阵和最小二乘
- [game]《泰坦陨落2》