题意:找到一个m,使得m%ai=ri,并且这个m最小

m = a1*x + r1;

m = a2*y + r2;

可得:a1*x - a2*y = r2 - r1

可得:a1*x ≡ r2-r1(moda2);

r = gcd(a1,a2);

求一次同余线性方程---判定条件 (r2-r1)%  r==0

解得 x ≡  ((r2-r1)/r)*x%(a2/r)+a2/r)%(a2/r);

r1 = a1 * x + r1;

a1 = a1 * a2 / r;再与下一个等式求解

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
typedef __int64 LL;
LL x,y;
LL ecgcd(LL a,LL b)
{if(b == 0) {x = 1,y = 0;return a;}int k = ecgcd(b,a%b);LL t = x;x = y;y = t - a/b*y;return k;
}
int main()
{LL n,a1,a2,r1,r2;while(~scanf("%I64d",&n)){scanf("%I64d%I64d",&a1,&r1);bool flag = false;for(LL i = 2;i <= n;i++){scanf("%I64d%I64d",&a2,&r2);if(flag) continue;LL r = ecgcd(a1,a2);LL R = r2 - r1;if(R%r) {flag = true;continue;}//求解一次同余式的判定LL mod = a2/r;x = (R/r*x%mod+mod) % mod;//解得a1*x = R (mod a2);的一个特解 即最小值r1 = x*a1 + r1;a1 = a1*a2/r;}if(flag) printf("-1\n");else printf("%I64d\n",r1);}
}

若还是不明白:点这里  http://hi.baidu.com/buaa_babt/item/5f4c013772c7cbe3e6bb7a2d

poj-2891(Strange Way to Express Integers)--中国剩余定理扩展欧几里得相关推荐

  1. 数论练习1 ( 曹冲养猪 + [POJ 2891]Strange Way to Express Integers + 乘法逆元【带证明】)

    虽然作业还没有做完,但是我还是放不下它,对此,我只想说: 今天你对作业爱理不理,明天它就让你补到飞起 DP先放放,我们要雨露均沾 练习上手:乘法逆元 题目 题解 代码实现 曹冲养猪?(互质的中国剩余定 ...

  2. poj 2891 Strange Way to Express Integers

    题目:http://poj.org/problem?id=2891 思路:扩展欧几里得 #include <cstdio> #include <cstring> #includ ...

  3. POJ 2891 Strange Way to Express Integers ★ (扩展欧几里德解同余式组)

    题目链接:http://poj.org/problem?id=2891 题目大意: 很好的一道题,解同余式组: x = r1 (mod m1) x = r2 (mod m2) -- x = rp (m ...

  4. [POJ 2891] Strange Way to Express Integers

    Description 给定 k 个同余方程组,求出满足条件的最小正整数 x,或者无解输出 -1. Solution 注意到模数不一定互质,所以中国剩余定理不能用 嗯有请扩展中国剩余定理 定理证明就不 ...

  5. poj 2891 Strange Way to Express Integers 2012-09-05

    http://poj.org/problem?id=2891 解线性模方程组. 比较坑爹,数据比较大,很容易溢出. 1 Program poj2891; 2 3 var m:int64; 4 5 a, ...

  6. BZOJ-1951 古代猪文 (组合数取模Lucas+中国剩余定理+拓展欧几里得+快速幂)...

    数论神题了吧算是 1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1573 Solved: 650 [Submit ...

  7. Strange Optimization(扩展欧几里得)

    Strange Optimization Accepted : 67   Submit : 289 Time Limit : 1000 MS   Memory Limit : 65536 KB Str ...

  8. 数学--数论--中国剩余定理+扩展中国剩余定理(孙子定理)

    中国剩余定理 问题 求解同余方程组 其中m1,m2,m3...mkm_1,m_2,m_3...m_km1​,m2​,m3​...mk​为两两互质的整数 求x的最小非负整数解 定理 令M=∏i=1kmi ...

  9. 模线性方程(中国剩余定理+扩展中国剩余定理)

    已知一系列除数和模数,求最小的满足条件的数 我们先考虑一般的情况,即模数不互质.(扩展中国剩余定理) 我们考虑两个方程的情况 x%M=R x=k1∗M+Rx=k1 * M+Rx=k1∗M+R x%m= ...

最新文章

  1. geopy 在python中的使用
  2. 21-break、continue、return语句理解
  3. 多种方法解决Exchange 2010 EMC批量启用邮箱之后出..
  4. 打造个性化的Internet Explorer
  5. (网页)js每隔5分钟执行一次ajax请求的实现方法(转)
  6. Error loading native library: libnjni9.so.的解决办法
  7. 【Python配置】Win10配置Python3、Numpy、PyCharm、Anaconda
  8. 图论复习(各类习题)
  9. Ubuntu 安装 中文输入法(Google 拼音)
  10. 命名实体识别数据集构建
  11. Centos7安装Mysql、九条命令搞定
  12. PHP源码 京东联盟API接口,转链+cha询订单,cha询推广位
  13. excel中roundup使用指南
  14. 基于opencv的身份证识别(KNN与OCR两种算法)
  15. 第一个帖子,先灌灌水
  16. python脚本windows环境下权限问题处理
  17. 史上最大规模世界杯直播 阿里云承包了全网70%的流量
  18. Torch的参数初始化
  19. 怎么样去提升网站长尾词在百度搜狗360的排名?
  20. 不可错过的UI 设计配色技巧

热门文章

  1. bootstrap checkbox选中事件
  2. (转)MySQL索引原理及慢查询优化
  3. 在Linux下记录所有用户的登录和操作日志
  4. 21017-05-13 21:05
  5. Linux下SSH使用rsa认证方式省去输入密码
  6. 译《Understanding Microsoft Virtualization Solutions》-之1.2
  7. 通过IHS(IBM HTTP SERVER)转发WAS(WEBSPHERE)应用的小问题
  8. easy and hard things
  9. ifm virtual check part3
  10. 在github上面下载文件夹的方法666