poj2115—扩展欧几里得
模板题
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
ll x,y;
void exgcd(ll a,ll b){if(b == 0){ x = 1;y = 0;return;}exgcd(b,a%b);ll t = y;y = x - a / b * t;x = t;
}
ll getgcd(ll a, ll b)
{if(b == 0) return a;else return getgcd(b, a % b);
}
int main()
{ll A, B, C, k, a, b, c, n, gcd, n1;while(1){scanf("%lld%lld%lld%lld",&A,&B,&C,&k);if(A+B+C+k == 0) break;n = (ll)1<<k;a = C;b = B-A;if(b == 0){printf("0\n");continue;}gcd = getgcd(a,n);if(b % gcd != 0 || n < B){printf("FOREVER\n");continue;}exgcd(a,n);x = x * b / gcd;n1 = n / gcd;if(x <= 0){x = (x % n1 + n1) % n1;}else x = x % n1;printf("%lld\n",x);}return 0;
}
poj2115—扩展欧几里得相关推荐
- 扩展欧几里得 POJ 1061
感觉这道题目的数据好水啊...我的代码我都觉得姿势特别奇怪...竟然还过了... 好吧,原来不是姿势奇怪,而是逆元需要用的时候是余数也需要的时候,这里的余数是不需要的,所以就AC了 就说一下碰到的问题 ...
- 求逆元(线性求逆元)及其扩展欧几里得
线性求逆元模板: int inv[maxn]; void initInverse(){inv[1] = 1;for(int i = 2; i <= maxn; i++)inv[i] = (p - ...
- poj-青蛙的约会(扩展欧几里得)nyoj-小柯的约会
由题意可列出方程 x + m * s - (y + n * s) = k * l; 化简得 (n-m)*s + k*l = x - y 化简得 (n-m)*s = x - y (mod l); ...
- [模板]欧几里得算法/扩展欧几里得
最大公因数(欧几里得算法) $gcd(a,b)=gcd(b\%a,a)$(不一定需要a<b) $gcd(0,b)=b$ 1 inline int gcd(int a,int b){ 2 retu ...
- “景驰科技杯”2018年华南理工大学程序设计竞赛 H-对称与反对称(扩展欧几里得求逆元)
题目链接 题目描述: 给出一个N*N的方阵A.构造方阵B,C: 使得A = B + C.其中 B为对称矩阵,C为反对称矩阵. 对于方阵S中的任意元素,若(S)ij = (S)ji,则称S为对称矩阵 对 ...
- Strange Optimization(扩展欧几里得)
Strange Optimization Accepted : 67 Submit : 289 Time Limit : 1000 MS Memory Limit : 65536 KB Str ...
- CodeForces - 724C Ray Tracing(扩展欧几里得解方程)
题目链接:点击查看 题目大意:在 n∗mn*mn∗m 的矩阵中,从点 (0,0)(0,0)(0,0) 发射一个小球,以四十五度的方向出发,速度是 2\sqrt{2}2,当碰到壁时,会进行反射:当碰到 ...
- 牛客多校3 - Fraction Construction Problem(扩展欧几里得)
题目链接:点击查看 题目大意:给出 a 和 b ,求解满足条件的 c,d,e,f ,使得: d < b f < b c,e 均为小于等于 4e12 的正整数 题目分析:分情况讨论一下,首先 ...
- POJ - 1061 青蛙的约会(扩展欧几里得)
题目链接:点击查看 题目大意:两只青蛙在一个单向循环数轴上跳动,给出初始位置和每秒跳动的距离以及数轴长度,问是否可以相遇,若能相遇求出最小时间 题目分析:自从第一次接触扩展欧几里得以来已经有半年时间了 ...
最新文章
- 怎么通过ip连接oracle,Oracle 无法通过IP连接问题
- 20169210《Linux内核原理与分析》第十二周作业
- 【Kubernetes系列】Kubernetes组件介绍
- 华为年底开源其操作系统 EulerOS,更名为 openEuler
- DRBD安装配置、工作原理及故障恢复
- 学python有前途吗-我们能用Python做什么?学Python有前途吗?
- oracle数据库导dump,oracle数据导入,导出dump文件
- MySQL几种常见的数据类型
- 最棒的 JavaScript 学习指南(2018版)
- 北航机试 16逆序数
- 95%的码农都在用的编程神器,值得一看!
- 关于初级java程序员面试题总结(每月更新中)
- 随笔分类 - PowerShell
- Python-Cartopy制图学习01-中国区域SPEI空间制图
- 科普:QLED和OLED到底有何区别?
- py2exe安装使用
- 3D游戏编程与设计作业六
- 2022年末最新最全Java学习路线,结合工作经验和培训机构整理
- Android中的Cursor
- 远程桌面用administrator登录的原因简介