NEFU 84 五指山(拓展欧几里德)
来源:互联网 发布:工业控制软件开发 编辑:程序博客网 时间:2024/04/30 08:02
- 原题链接:Here!
- 思路:已知四个非负整数,n(2 < n < 10^9),表示如来手掌圆圈的长度;d(0 < d < n),筋斗所能飞的距离;x(0 <= x < n),大圣的初始位置;y(0 <= y < n),大圣想去的地方。注意孙悟空的筋斗云只沿着逆时针方向翻。
设t次翻滚能到达y点,即有方程 x + t*d = y + c*n ,(c为非负整数)
整理得:t*d - c*n = y - x,方程有解的条件是gcd(d,n)|(y-x) - 代码:
#include<iostream>using namespace std;typedef long long LL;LL exgcd(LL a,LL b,LL &x,LL &y){if(b==0){x=1; y=0; return a;}LL d = exgcd(b,a%b,x,y);LL tmp = x;x = y;y = tmp - a/b*y;return d;}int main(){LL t,n,d,x,y,x1,y1;while(cin>>t){while(t--){cin>>n>>d>>x1>>y1;LL c = y1 - x1;LL d1 = exgcd(d,n,x,y);if(c%d1){cout<<"Impossible\n";}else{LL tmp = n/d1;LL ans = x*c/d1;ans = (ans%tmp+tmp)%tmp;cout<< ans <<endl;}}}return 0;}
0 0
- NEFU 84 五指山(拓展欧几里德)
- nefu 84 五指山(扩展欧几里德)
- nefu-84-五指山(扩展欧几里德算法)
- nefu 84 五指山 拓展欧几里得
- nefu 84(拓展欧几里德)
- 扩展欧几里德 之 五指山 nefu 84
- Nefu 84 五指山【拓展欧几里得】入门
- nefu 84 五指山 (扩展欧几里得)
- NEFU 84 五指山
- NEFU 84 五指山
- NEFU 84 五指山(扩展欧几里得)
- nefu 84 五指山(扩展ou'ji'li)
- NEFU 84 五指山 扩展欧几里得算法
- NEFU 84 五指山 求解同余方程的最小解
- 拓展欧几里德
- 拓展欧几里德
- 欧几里德与拓展欧几里德
- 题解: poj 1061 nefu 84(拓展欧几里得)
- qt event 学习笔记5
- 打印1到最大的n位数
- UIColletionView瀑布流布局实现思路以及封装的实现
- 团队共创法成功实施的几个重点
- ubuntu下 docekr,compose 的安装,免sudo 运行
- NEFU 84 五指山(拓展欧几里德)
- GitHun create and push
- [LeetCode]437. Path Sum III
- 11 Passing Date Into Our Components
- 十六进制转八进制
- this和$(this)的区别
- python技巧(6)
- 657UVa掷骰子(图)
- 【PAT】1118. Birds in Forest (25)