\(mod\)存在不互素情况下的CRT

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#define rep(i,j,k) for(register int i=j;i<=k;i++)
#define rrep(i,j,k) for(register int i=j;i>=k;i--)
#define erep(i,u) for(register int i=head[u];~i;i=nxt[i])
#define iin(a) scanf("%d",&a)
#define lin(a) scanf("%lld",&a)
#define din(a) scanf("%lf",&a)
#define s0(a) scanf("%s",a)
#define s1(a) scanf("%s",a+1)
#define print(a) printf("%lld",(ll)a)
#define enter putchar('\n')
#define blank putchar(' ')
#define println(a) printf("%lld\n",(ll)a)
#define IOS ios::sync_with_stdio(0)
using namespace std;
const int maxn = 1e6+11;
const int oo = 0x3f3f3f3f;
const double eps = 1e-7;
typedef long long ll;
ll read(){ll x=0,f=1;register char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
ll exgcd(ll a,ll b,ll &x,ll &y){if(b==0){x=1;y=0;return a;}else{ll g=exgcd(b,a%b,x,y);ll tmp=x;x=y;y=tmp-a/b*x;return g; }
}
ll inv(ll n,ll m){ll g=gcd(n,m);if(g!=1) return -1;ll x,y;exgcd(n,m,x,y);return (x%m+m)%m;
}
bool merge(ll a1,ll mod1,ll a2,ll mod2,ll &a3,ll &mod3){ll d=gcd(mod1,mod2);ll c=a2-a1;if(c%d!=0)return 0;mod1/=d; mod2/=d; c/=d;c*=inv(mod1,mod2);c%=mod2;c*=mod1*d;c+=a1;mod3=mod1*mod2*d;a3=(c%mod3+mod3)%mod3;return 1;
}
ll CRT(ll a[],ll mod[],ll n){ll a1=a[1];ll mod1=mod[1];rep(i,2,n){ll a2=a[i];ll mod2=mod[i];ll mod3,a3;if(!merge(a1,mod1,a2,mod2,a3,mod3))return -1;a1=a3;mod1=mod3;}return (a1%mod1+mod1)%mod1;
}
int n;
ll mod[maxn],a[maxn];
int main(){while(cin>>n){rep(i,1,n){mod[i]=read();a[i]=read();}ll ans=CRT(a,mod,n);println(ans);}return 0;
} 

转载于:https://www.cnblogs.com/caturra/p/8458765.html

POJ - 2891 中国剩余定理相关推荐

  1. poj 1006 java_POJ 1006 Java:中国剩余定理

    题目描述: 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏 ...

  2. 挑战程序竞赛系列(41):4.1中国剩余定理

    挑战程序竞赛系列(41):4.1中国剩余定理 详细代码可以fork下Github上leetcode项目,不定期更新. 练习题如下: POJ 1006: Biorhythms POJ 2891: Str ...

  3. ACM数论----中国剩余定理与拓展中国剩余定理

    一.问题引入: 在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?"这个问 ...

  4. 中国剩余定理与扩展中国剩余定理

    中国剩余定理又名孙子定理 用来求解同余线性方程组 其中m1,m2,m3-两两互质,求x的最小整数解: 设M为m1,m2,m3-的公倍数. 根据上面的推导,为什么x的通解形式是累加呢? 根据上面推导,推 ...

  5. CF338D GCD Table(拓展中国剩余定理,细节处理,2900分)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 CF338D GCD Table(拓展中国剩余定理,细节处理,2900分) Problem 有一张 n ...

  6. 初等数论--同余方程--同余方程组:中国剩余定理

    初等数论--同余方程--同余方程组:中国剩余定理 博主是初学初等数论(整除+同余+原根),本意是想整理一些较难理解的定理.算法,加深记忆也方便日后查找:如果有错,欢迎指正. 我整理成一个系列:初等数论 ...

  7. 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法

    打死没想到会在H老师处学懂数论 同余,整除 模运算 埃式筛法 欧拉筛法 最大公约数和最小公倍数 辗转相除法 更相减损术 裴蜀定理 威尔逊定理 费马定理 同余等价类.剩余系.缩系 欧拉函数 欧拉定理 扩 ...

  8. 信奥中的数学:孙子定理 中国剩余定理

    孙子定理 中国剩余定理 孙子定理 中国剩余定理_Dreamer Thinker Doer-CSDN博客 中国剩余问题(简介+详解) 中国剩余问题(简介+详解)_dreamzuora的博客-CSDN博客 ...

  9. 数论 —— 线性同余方程组与中国剩余定理

    [线性同余方程组] 由若干个线性同余方程构成的线性方程组. 例如: 其解法最早由我国<孙子算经>给出,因此解法称为"孙子定理",又叫"中国剩余定理" ...

  10. 通常情况下的中国剩余定理

    这几天学了学中国剩余定理....本来计划是一天学互质版一天学非互质版的,结果非互质版就学了好长时间...不过好在会证明了,考场上大力推一波应该是没问题的吧... 中国剩余定理是求形如x≡a1(mod ...

最新文章

  1. python datetime模块
  2. 怎么用python处理excel文件-如何用python处理excel表格
  3. IE浏览器整页截屏程序
  4. sap事务代码_SAP成本模块常用事务代码清单
  5. RNN Attention
  6. 强化学习实战(六)【Windows安装星际争霸Ⅱ 强化学习环境教程】
  7. HeadFIrst Ruby 第二章总结 methods and classes
  8. kotlin中文开发文档
  9. EXPDP命令行选项
  10. 正大国际期货:为什么外盘期货顺势交易这么难
  11. win10资源管理器窗口无法缩小
  12. ApacheCN 公众号文章汇总 2019.9
  13. win10分屏快捷键无法使用_Win10分屏操作,再也不用来回切换视图了!
  14. nohup sh xxx.sh /dev/null
  15. 第三章:可行性研究及需求分析
  16. python+scrapy爬虫 + mongoodb + hadoop+hive综合项目:招聘网站数据
  17. Sublime Text 3 的 Markdown 实时预览全面总结
  18. Vue路由守卫(导航守卫)及使用场景
  19. day8——盒子模型-制作音乐盒
  20. Ogre图形引擎介绍(ZT)

热门文章

  1. 杨振宁与清华计算机系,他放弃美国国籍,和杨振宁一起回国,让清华计算机系问鼎全球...
  2. pip安装tensorflow_Tensorflow源代码编译踩坑若干
  3. mysql sql语句执行到一半会怎么样?
  4. docker gpu 创建 训练环境_基于 Mesos、Docker 和 Nvidia GPU 的深度学习平台实践
  5. 【UVA12304】2D Geometry 110 in 1!(外接圆/内切圆/切点等圆相关问题的模版题)
  6. hdoj2084:数塔(dp基础题----递归写法/状态转移方程法)
  7. java正则过滤小括号,java正则表达式获取大括号小括号内容并判断数字和小数亲测可用...
  8. edp协议 netty_EdpProtoDebugger-EdpProtoDebugger(EDP协议调试分析工具)下载 v2.0官方版--pc6下载站...
  9. 极客大学架构师训练营 数据结构与算法 平衡二叉树 红黑树 动态规划 遗传算法 第15课 听课总结
  10. iis启动服务时提示在本地计算机 无法启动iis admin服务,无法启动IIS Express Web服务器...