博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod 1079 中国剩余定理
阅读量:6928 次
发布时间:2019-06-27

本文共 1096 字,大约阅读时间需要 3 分钟。

一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K。例如,K % 2 = 1, K % 3 = 2, K % 5 = 3。符合条件的最小的K = 23。
 
Input
第1行:1个数N表示后面输入的质数及模的数量。(2 <= N <= 10)第2 - N + 1行,每行2个数P和M,中间用空格分隔,P是质数,M是K % P的结果。(2 <= P <= 100, 0 <= K < P)
Output
输出符合条件的最小的K。数据中所有K均小于10^9。
Input示例
32 13 25 3
Output示例
23 ——————————————————————————— 这道题是裸的剩余定理
#include
#include
#include
#define LL long longLL read(){ LL ans=0,f=1,c=getchar(); while(c<'0'||c>'9'){
if(c=='-') f=-1; c=getchar();} while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();} return ans*f;}int n;LL ans,c[15],p[15],mod;LL inv(LL a,LL b,LL c){ LL ans=1; while(b){ if(b&1) ans=ans*a%c; b>>=1; a=a*a%c; }return ans;}int main(){ n=read(); mod=1; for(int i=1;i<=n;i++){ p[i]=read(); c[i]=read(); mod*=p[i]; } for(int i=1;i<=n;i++){ LL ly=mod/p[i]*c[i]%mod; ans=(ans+(__int128)ly*inv(mod/p[i],p[i]-2,p[i]))%mod; }printf("%lld\n",ans); return 0;}
View Code
 

 

 

 

 

转载于:https://www.cnblogs.com/lyzuikeai/p/7695023.html

你可能感兴趣的文章
浅谈正则表达式
查看>>
GIt的备份和恢复
查看>>
iOS内存暴增问题追查与使用陷阱
查看>>
linux grep命令 (学习备份)
查看>>
139.00.007 Git学习-Cheat Sheet
查看>>
2017-11-06-构建之法:现代软件工程-阅读笔记
查看>>
vue 进行 gzip压缩和服务器如何开启gzip(转)
查看>>
组合模式-虚有其表的模式
查看>>
java8 peek
查看>>
Python实现字符串反转的几种方法
查看>>
目前国际上所用云计算平台IaaS、PaaS、SaaS简介
查看>>
模式识别之预测---一元线性回归
查看>>
响应式ie8兼容问题
查看>>
[16]CSS3 边框图片效果
查看>>
mysql group_concat方法用法
查看>>
[六省联考2017]摧毁“树状图”
查看>>
利用自然数的标准分解证明可数集合的所有有限子集形成的集合是可数集
查看>>
Excel中SEARCH和FIND函数的区别
查看>>
js继承综合
查看>>
[转译]5种方法提高你网站的登录体验
查看>>