数论及应用学习__Part1 拓展欧几里得【3/5】
来源:互联网 发布:停止mysql服务命令 编辑:程序博客网 时间:2024/06/02 02:45
题目连接:
NEFU 84:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=84
https://cn.vjudge.net/contest/172643#overview
Nefu 84:我是萌萌哒题解
A.求(A/B)%9973
我们求出B的逆元InB;
那么答案就是A*InB%mod
现在给出A%mod的值为n,那么答案就是InB*n%mod;
Ac代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define ll long long intll x,y;ll ex_gcd(ll a,ll b,ll &x,ll &y){ if(b==0) { x=1; y=0; return a; } ll ans=ex_gcd(b,a%b,x,y); ll tmp=x; x=y; y=tmp-a/b*y; return ans;}ll mod_inverse(ll a,ll m){ ex_gcd(a,m,x,y); return (x%m+m)%m;}int main(){ int t; scanf("%d",&t); while(t--) { ll n,B; scanf("%lld%lld",&n,&B); ll InB=mod_inverse(B,9973); ll ans=n*InB%9973; printf("%lld\n",ans%9973); }}
B.
C.要求ax+by=1的解x,y。要求x>0
如果要有:ax+by=d有解,那么需要保证ax+by=gcd(a,b)中,gcd(a,b)为d的因子。
这里d==1.那么需要保证gcd(a,b)也是1.
特殊要求x>0.我们已知通解:
X=x+b/d*t
Y=y-a/d*t
这里t为任意常数。
那么暴力枚举t即可。
Ac代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define ll long long intll x,y;ll ex_gcd(ll a,ll b,ll &x,ll &y){ if(b==0) { x=1; y=0; return a; } ll ans=ex_gcd(b,a%b,x,y); ll tmp=x; x=y; y=tmp-a/b*y; return ans;}int main(){ ll a,b; while(~scanf("%lld%lld",&a,&b)) { ll gc=ex_gcd(a,b,x,y); if(1%gc==0) { while(x<=0) { x+=b/1; y-=a/1; } printf("%lld %lld\n",x,y); } else { printf("sorry\n"); } }}
D.
阅读全文
0 0
- 数论及应用学习__Part1 拓展欧几里得【3/5】
- 基础数论学习笔记-----------拓展欧几里得算法【Extended Euclidean Algorithm】
- 基础数论学习笔记-----------拓展欧几里得算法【Extended Euclidean Algorithm】
- 数论之欧几里得与拓展欧几里得算法
- 数论学习之欧几里得的应用
- 拓展欧几里得学习小记
- 7C. Line【拓展欧几里得】 数论模板
- ACM:数论专题——拓展欧几里得
- 【结论】【数论】拓展欧几里得算法、费马小定理
- 数论基础(gcd + 拓展欧几里得)
- [数论] 拓展欧几里得算法(poj 2115)
- MAT-欧几里得及拓展欧几里得算法
- [学习笔记] 拓展欧几里得算法
- 数论学习之扩展欧几里得
- 理论: 数论(2):拓展欧几里得算法及其证明
- [数论] 拓展欧几里得算法 (poj1061 青蛙的约会)
- 拓展欧几里得临时文档5
- poj 2773 欧几里得 一个拓展应用
- Android实现点击通知栏后,先启动应用再打开目标Activity
- Mysql now()加减指定秒
- HDU
- Mac远程桌面连接windows
- 历史状态管理
- 数论及应用学习__Part1 拓展欧几里得【3/5】
- 类的加载、连接和初始化
- 冒泡和快排的js实现
- 【C++】【C++ Premier 习题集 P75页程序纠错没成功!欢迎指教】
- 【DP】最长回文字串【516. Longest Palindromic Subsequence】
- 常用排序算法
- LeetCode--Valid Parentheses
- Eclipse dtd 文件 引入
- String字符串操作--切割,截取,替换,查找,比较,去空格.....