http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85482#problem/D

题意: 输入x和k,输出p和q。

思路:扩展的欧几里得。系数只差1,故最大公约数一定是1,最后得出ax+by=1的形式,而题目中等式右面不为1,那么等式右边是几就将等式左右同乘几,即将得出的x,y同乘几,得出最后的结果。

知识:

typedef long long ll;

void f(ll a,ll b,&ll g,&ll x,&ll y)

{

if(!b){g=a;x=1;y=0;}

else {f(b,a%b,g,y,x);y-=a/b*x;}

}

将除数传给被除数,余数传给除数,这是辗转相除法;最后的边界语句中g=a,因为当a是除数,对应的余数b是0时,a就是最大公约数,在递推后得到后将其原样递归出来,即g传给g;而x=1,y=0,y-=a/b*x,x和y交换值,则是通过推导(gcd(a,b)=gcd(b,a%b),将x,y,a,b的关系表达出来,变换一下即可得到算法)得出的式子。

#include<iostream>
using namespace std;
typedef long long ll;
void f(ll a,ll b,ll& d,ll& x,ll& y)
{if(!b){d=a;x=1;y=0;}else{f(b,a%b,d,y,x);y-=a/b*x;}
}
int main()
{int t;cin>>t;for(int i=0;i<t;i++){  ll x,k,p,q,g;cin>>x>>k;if(x%k==0)cout<<0<<" "<<k<<endl;else{f(x/k,x/k+1,g,p,q);cout<<p*x<<" "<<q*x<<endl;}}
}

转载于:https://www.cnblogs.com/mu-ye/p/5445849.html

uva10673floor and cei扩展的欧几里得相关推荐

  1. 数论--欧几里得和扩展的欧几里得定理

    欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd( ...

  2. EEA扩展欧几里得 python实现及大坑

    python之(扩展)欧几里得_小乌龟的博客-CSDN博客_exgcd python 这是人家的递归方法 elegant~ 我按照正常的从头到尾的顺序,写的 但是 犯了坑: python里面的取模运算 ...

  3. 扩展欧几里得 POJ 1061

    感觉这道题目的数据好水啊...我的代码我都觉得姿势特别奇怪...竟然还过了... 好吧,原来不是姿势奇怪,而是逆元需要用的时候是余数也需要的时候,这里的余数是不需要的,所以就AC了 就说一下碰到的问题 ...

  4. 最大整数扩展欧几里得

    时间紧张,先记一笔,后续优化与完善. 辗转相除法求最大公约数,相信大家都在高中学过了,它也叫做欧几里得算法. 那么扩展欧几里得算法呢?它也能求出两个数的最大公约数,不过这不是他的目的,他用来解一个线性 ...

  5. Java实现算法导论中求解模线性方程解(基于最大公约数欧几里得扩展算法)

    基于最大公约数欧几里得扩展算法求解算法导论中模线性方程解.具体要结合算法导论中的有关数论算法章节理解,具体代码如下: package cn.ansj;/*假设方程ax=b(mod n)有解,且x0是方 ...

  6. 求逆元(线性求逆元)及其扩展欧几里得

    线性求逆元模板: int inv[maxn]; void initInverse(){inv[1] = 1;for(int i = 2; i <= maxn; i++)inv[i] = (p - ...

  7. 欧几里得及扩展欧几里得算法

    欧几里得算法 这个就是常说的辗转相除法,用于计算两个整数 $a,b$ 的最大公约数,即$$gcd(a,b)=gcd(b,a\;mod\;b)$$ int gcd(int a,int b){return ...

  8. poj-青蛙的约会(扩展欧几里得)nyoj-小柯的约会

    由题意可列出方程 x + m * s - (y + n * s) = k * l; 化简得   (n-m)*s + k*l = x - y 化简得   (n-m)*s = x - y (mod l); ...

  9. [模板]欧几里得算法/扩展欧几里得

    最大公因数(欧几里得算法) $gcd(a,b)=gcd(b\%a,a)$(不一定需要a<b) $gcd(0,b)=b$ 1 inline int gcd(int a,int b){ 2 retu ...

  10. “景驰科技杯”2018年华南理工大学程序设计竞赛 H-对称与反对称(扩展欧几里得求逆元)

    题目链接 题目描述: 给出一个N*N的方阵A.构造方阵B,C: 使得A = B + C.其中 B为对称矩阵,C为反对称矩阵. 对于方阵S中的任意元素,若(S)ij = (S)ji,则称S为对称矩阵 对 ...

最新文章

  1. Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?
  2. python映射类型-什么是python中唯一的映射类型
  3. PHP判断变量内容是什么编码
  4. Python中最常用十大图像处理库详细介绍
  5. python基础教程:while循环与运算符和编码
  6. 快速开发系统之前台页面 ---- NO1----登录页面
  7. 一个地方越有钱,人们就越不想结婚?
  8. 【Python爬虫】股票数据定向爬虫
  9. 数学习题:求解不定方程a^2 + b^2 = 3025
  10. 【Flink】Flink 反压机制 导致checkpoint 失败
  11. 查看文件md5_软件推荐丨go-fastdfs——高性能、高可靠分布式文件系统
  12. [bzoj1497][NOI2006]最大获利_网络流_最小割
  13. 西北工业大学计算机专业课考什么,西北工业大学西工大计算机考研经验
  14. 《2013小企业会计准则》的适用范围
  15. 移动硬盘如何合并磁盘
  16. 双稳态电路的两个稳定状态是什么_NE555集成电路--交替闪烁灯
  17. feifei_about
  18. Mac OS X下的动态链接库
  19. 分体式蓝牙耳机有哪些推荐?好用的分体式蓝牙耳机推荐
  20. 5G智慧合杆的城市商业区应用

热门文章

  1. 由对称性知定点一定在x轴上_圆锥曲线解答题的经典答案:由椭圆的对称性知,定点在x轴上?...
  2. 网络分析仪测试线损_网络分析仪测试天线隔离度
  3. android屏幕点击录制脚本,Android录制屏幕脚本
  4. Luogu 3332 [ZJOI2013]K大数查询
  5. it黑马中学习的mybatis配置
  6. 浅谈同构类问题的骗分算法
  7. SPSS如何进行随机抽样
  8. LeetCode热题HOT-100 刷题记录
  9. 使用深度学习和物理约束求解偏微分方程
  10. 3.STC15W408AS单片机GPIO