Discription
我知道部分同学最近在看中国剩余定理,就这个定理本身,还是比较简单的:
假设m1,m2,…,mk两两互素,则下面同余方程组:
x≡a1(mod m1)
x≡a2(mod m2)

x≡ak(mod mk)
在0<=<m1m2…mk内有唯一解。
记Mi=M/mi(1<=i<=k),因为(Mi,mi)=1,故有二个整数pi,qi满足Mipi+miqi=1,如果记ei=Mi/pi,那么会有:
ei≡0(mod mj),j!=i
ei≡1(mod mj),j=i
很显然,e1a1+e2a2+…+ekak就是方程组的一个解,这个解加减M的整数倍后就可以得到最小非负整数解。
这就是中国剩余定理及其求解过程。
现在有一个问题是这样的:
一个正整数N除以M1余(M1 - a),除以M2余(M2-a), 除以M3余(M3-a),总之, 除以MI余(MI-a),其中(a<Mi<100 i=1,2,…I),求满足条件的最小的数。

Input
输入数据包含多组测试实例,每个实例的第一行是两个整数I(1<I<10)和a,其中,I表示M的个数,a的含义如上所述,紧接着的一行是I个整数M1,M1…MI,I=0 并且a=0结束输入,不处理。

Output
对于每个测试实例,请在一行内输出满足条件的最小的数。每个实例的输出占一行。

Sample Input

2 1
2 3
0 0

Sample Output

5

思路
中国剩余定理板子题。

AC代码

#include <iostream>
#include <cstdio>
#include<cstring>
#include<string>
using namespace std;
typedef long long LL;
LL n,xx;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 temp=x;x =y;y =temp-a/b*y;return ans;
}LL China(LL a[], LL b[], LL x)
{LL  a1 = a[1], b1 = b[1];bool flag = 1;for(int i = 2; i <= x; i++){LL A = a1, B = a[i], C = b[i] - b1;LL x, y;LL gcd = ex_gcd(A, B, x, y);if(C % gcd){flag = 0;break;}x = ((x * C / gcd) % (B / gcd) + (B / gcd)) %(B / gcd);b1 = a1 * x + b1;a1 = a1 / gcd * a[i];}if(b1)return b1;elsereturn a1;
}LL p[20],m[20];int main()
{while(scanf("%lld %lld",&n,&xx)){if(n==0&&xx==0)break;for(int i = 1; i<=n; i++){scanf("%lld",&m[i]);p[i]=m[i]-xx;}LL ans = China(m,p,n);printf("%lld\n",ans);}return 0;
}

HDU1788 【中国剩余定理】相关推荐

  1. 中国剩余定理(孙子定理)的证明和c++求解

    <孙子算经>里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个. 书里面给了计算过程及答案: ...

  2. 解题报告(十三)中国剩余定理(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  3. 中国剩余定理(Chinese Remainder Theorem)

    中国剩余定理 民间传说着一则故事--"韩信点兵". 秦朝末年,楚汉相争.一次,韩信将1500名将士与楚王大将李锋交战.苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿 ...

  4. 【中国剩余定理】POJ 1006 HDU 1370 Biorhythms

    题目链接: http://poj.org/problem?id=1006 http://acm.hdu.edu.cn/showproblem.php?pid=1370 题目大意: (X+d)%23=a ...

  5. 中国剩余定理matlab非互质,中国剩余定理模板(互质版和非互质版)

    互质版: #include #include #include using namespace std; typedef __int64 int64; int64 a[15],b[15]; int64 ...

  6. POJ2891 Strange Way to Express Integers【扩展中国剩余定理】

    题目大意 就是模板...没啥好说的 思路 因为模数不互质,所以直接中国剩余定理肯定是不对的 然后就考虑怎么合并两个同余方程 \(ans = a_1 + x_1 * m_1 = a_2 + x_2 * ...

  7. 韩信点兵-中国剩余定理(练习)

    http://acm.nyist.net/JudgeOnline/problem.php?pid=34提交地址 韩信点兵-中国剩余定理. 题目能够用枚举非常easy的做出来,在这里写是为了运用一下刚刚 ...

  8. hdu 3579(中国剩余定理非互质)

    解题思路:这道题目因为不一定是互质的,所以直接套用中国剩余定理肯定是错的,,这里采用的是非互质的方法...之前的博客上面有详细的证明过程和算法,这里就不罗嗦了..但是这道题目在输出的时候有特定的要求, ...

  9. hdu 1573(中国剩余定理非互质情况)

    解题思路:这道题目有可能a[i],两两不互质,所以直接用中国剩余定理肯定是不对的..这里考虑非互质的情况 问题描述:给出bi,ni的值,且n1, n2, n3,-, ni两两之间不一定互质,求Res的 ...

最新文章

  1. ISP【三】———— raw读取、不同格式图片差异
  2. 从0到1:千万级美团端侧CDN容灾解决方案
  3. 明明是 64 位系统,为什么python sys.platform 显示 win 32 ?
  4. 使用Mock.js进行独立于后端的前端开发
  5. 八大排序算法的python实现(四)快速排序
  6. git通过gitosis来管理权限(三)
  7. virtualbox+vagrant学习-2(command cli)-20-vagrant suspend命令
  8. dubbo源码解析-zookeeper创建节点
  9. 输出四位完全平方数_完全平方数中的规律
  10. bash 字符串处理(转)
  11. JBoss Tomcat 对 JSP 的泛型支持
  12. 传智播客c/c++公开课学习笔记--Linux网络流媒体服务器的核心代码揭秘
  13. PHP-----strpos() 函数的用法
  14. PS CS4抽出滤镜抠图小技巧
  15. 8086微处理器介绍
  16. pdf压缩文件怎么压缩到最小?简单快速压缩的pdf的方法?
  17. IDEA左侧目录,按照文件夹排序
  18. 知到python课程答案-智慧树知到APPPython数据分析与数据可视化网课答案
  19. 会议OA项目排座功能以及送审功能
  20. SI522A/SI523带低功耗自动寻卡功能的13.56MHz非接触式读写器芯片

热门文章

  1. 阿里云 ACP 认证,分享下经验心得
  2. 21-4-21 USB接口
  3. Python模拟Tim登录界面
  4. 预测身高c需语言,预测身高问题。不知哪出问题了,算出乱码。求解!
  5. OSPF与BGP协议流程与协议格式简单学习
  6. javaEE---CSS
  7. 职业科普丨PMP是什么呢?
  8. 优化算法之指数加权平均详解
  9. 学会提问——批判性思维指南
  10. stm32 printf打印出错,信息不完整解决办法