集训笔记---扩展欧几里德算法(POJ NO.1061 青蛙的约会 有点烦人小跳蛙gcd)
又在搬砖,本来以为这是一个追及问题,后来发现数据好像并不是那么个意思,后来把方程列出来,经过一个去模的操作,我们其实可以找到一点线索,那就是,一个经过变形的二元一次方程,那么在这种情况下,就可以利用扩展欧几里德算法把解给人解出来,这道题目样例给的很含蓄,但其实是一个多实例,而且不用long long就WA,而且最后递归干出来的解还需要动一点手脚才是最终的答案
题目链接1061 -- 青蛙的约会
下面是AC代码
#include<cstdio>
#include<algorithm>
using namespace std;
long long gcd(long long a, long long b, long long &x, long long &y);
int main(void)
{
long long x1, y1, n, m, l, x, y, r, b;
while(scanf("%lld %lld %lld %lld %lld", &x1, &y1, &m, &n, &l) != EOF)
{
b = gcd((n-m), l, x, y);
r = l / b;
if((x1-y1) % b != 0)
{
printf("Impossible\n");
}
else
{
printf("%lld\n", ((x1 - y1) / b * x % r + r) % r);
}
}
return 0;
}
long long gcd(long long a, long long b, long long &x, long long &y)
{
long long d = a;
if(b == 0)
{
x = 1;
y = 0;
}
else
{
d = gcd(b, a%b, y, x);
y = y - (a/b)*x;
}
return d;
}
集训笔记---扩展欧几里德算法(POJ NO.1061 青蛙的约会 有点烦人小跳蛙gcd)相关推荐
- 数论:扩展欧几里德(洛谷P1516 青蛙的约会)
欧几里德 基本思想:gcd(q,r)=gcd(r,q%r); 证明,设q.r的最大公因数为a,则q=xa,r=ya,xy互质 不妨设x>y(显然如果小于会在一次gcd运算后交换) 则q%r=(x ...
- 青蛙的约会(POJ 1061 扩展欧几里德算法)
POJ 1061 青蛙的约会 扩展欧几里德算法简单介绍及应用 题目大意: 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳, ...
- poj 2115 C Looooops(扩展欧几里德算法)
题意: 对于for(i=A ; i!=B ;i+=C)循环语句,问在k位存储系统中循环几次才会结束. 比如:当k=4时,存储的数 i 在0-15之间循环.(本题默认为无符号) 若在有限次内结束,则输出 ...
- 欧几里德与扩展欧几里德算法——密码学笔记(五)
一.欧几里德算法 又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a% ...
- 欧几里德算法 扩展欧几里德算法
欧几里德算法 欧几里德算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数. 计算公式:gcd(a,b) = gcd(b,a mod b). 算法实现: public static int g ...
- 扩展欧几里德算法详解
转自:http://blog.csdn.net/zhjchengfeng5/article/details/7786595 扩展欧几里德算法 谁是欧几里德?自己百度去 先介绍什么叫做欧几里德算法 有两 ...
- 欧几里德算法与扩展欧几里德算法
欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd( ...
- (扩展欧几里德算法)zzuoj 10402: C.机器人
10402: C.机器人 Description Dr. Kong 设计的机器人卡尔非常活泼,既能原地蹦,又能跳远.由于受软硬件设计所限,机器人卡尔只能定点跳远.若机器人站在(X,Y)位置,它可以原地 ...
- Bailian2793 孙子问题【扩展欧几里德算法+中国剩余定理】
2793:孙子问题 总时间限制: 15000ms 内存限制: 65536kB 描述 我国古代<孙子算经>中,记有如下算题:"今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩 ...
最新文章
- 真「祖传代码」!你的 GitHub 代码已打包运往北极,传给 1000 年后人类
- 巧妙设置Android来方便管理Linux和Windows
- ES6的export与Nodejs的module.exports比较
- Python有了concurrent的话mutiprocessing和threading还有存在的意义吗?
- 智能家居——IoT零基础入门篇
- c++游戏代码大全_还在学少儿编程?不如来玩工厂编程师,免费学编程逻辑的小游戏...
- Mysql中的外键分析(什么是外键,为什么要用外键,添加外键,主外键关联删除)
- 时间序列的分析和预测ARIMA
- 自己做量化交易软件(42)小白量化实战15--自编股票软件公式历史与聚宽量化平台仿大智慧指标回测设计
- Arduino蜂鸣器唱曲天空之城
- 一片文章彻底搞懂各种DDos攻击方式
- CSDN独家全网首发专栏 | 《目标检测YOLO改进指南》改进涨点推荐!
- Swift 进阶 | 看得见的算法
- 短链接服务架构设计概览
- ie登录显示登录到ftp服务器,ie浏览器登陆ftp服务器
- android lightroom,Lightroom
- 软件系统的服务器环境,服务器软件环境操作系统
- 思科瘦AP开启telnet/ssh通过WLC命令方式
- 基于 Iceberg 的湖仓一体架构在 B 站的实践
- flutter 视频选择之后并分片上传
热门文章
- 计算机网络多元化媒体传达,网页版式设计的特征及其视觉元素
- android q三星a60,三星GALAXY A60开发者选项怎么打开?
- 数据分析真题日刷 | 商汤科技2018校招C++/算法开发/大数据/后端/运维/测试/数据挖掘开发工程师笔试第二场
- 彩虹表破解Hash算法
- 服装设计要学计算机吗,学服装设计用什么电脑_服装设计师要做什么
- 广播域+冲突域的区别
- 十八、报销单流程开发
- 算法学习之路|幼儿园买玩具
- elasticsearch优化之多字段搜索multi_match查询
- 墨画子卿第四章第2节:如意随心