题目链接 扩展CRT模板题,原理及证明见传送门(引用) #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; ; ll n,m[N],c[N]; void exgcd(ll a,ll b,ll& x,ll& y,ll& g) { ,y=,g=a; else exgcd(b,a%b,y,x,g),y-=x*(a/b); } bool CRT(ll&…
http://poj.org/problem?id=2891 题意:求解一个数x使得 x%8 = 7,x%11 = 9; 若x存在,输出最小整数解.否则输出-1: ps: 思路:这不是简单的中国剩余定理问题,由于输入的ai不一定两两互质,而中国剩余定理的条件是除数两两互质. 这是一般的模线性方程组,对于 X mod m1=r1 X mod m2=r2 ... ... ... X mod mn=rn 首先,我们看两个式子的情况 X mod m1=r1-----------------------(…
题意:求解一般模线性同余方程组 解题关键:扩展中国剩余定理求解.两两求解. $\left\{ {\begin{array}{*{20}{l}}{x = {r_1}\,\bmod \,{m_1}}\\{x = {r_2}\,\bmod \,{m_2}}\end{array}} \right.$ 为了代码的符号清晰,将转化后的系数都为正,故如下设方程. $\left\{ {\begin{array}{*{20}{l}}{x = {r_1} - {k_1}{m_1}}\\{x = {r_2} + {k…
题目链接 扩展中国剩余定理:1(直观的).2(详细证明). [Upd:]https://www.luogu.org/problemnew/solution/P4774 #include <cstdio> #include <cctype> #define gc() getchar() typedef long long LL; const int N=1e6+5; LL n,m[N],r[N]; inline LL read() { LL now=0,f=1;register ch…
题目链接 题意:给k对数,每对ai, ri.求一个最小的m值,令m%ai = ri; 分析:由于ai并不是两两互质的, 所以不能用中国剩余定理. 只能两个两个的求. a1*x+r1=m=a2*y+r2联立得:a1*x-a2*y=r2-r1;设r=r2-r2; 互质的模线性方程组m=r[i](mod a[i]).两个方程可以合并为一个,新的a1为lcm(a1,a2), 新的r为关于当前两个方程的解m,然后再和下一个方程合并…….(r2-r1)不能被gcd(a1,a2)整除时无解.   怎么推出的看…
题目链接:http://poj.org/problem?id=2891 题目大意: 求解同余方程组,不保证模数互质 题解: 扩展中国剩余定理板子题 #include<algorithm> #include<cstring> #include<cstdio> #include<iostream> #include<cmath> using namespace std; typedef long long ll; +; int k; ll m[N],…
扩展中国剩余定理板子 #include<iostream> #include<cstdio> using namespace std; const int N=100005; int n; long long m[N],r[N],M,R,x,y,d; void exgcd(long long a,long long b,long long &d,long long &x,long long &y) { if(!b) { d=a,x=1,y=0; return…
Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9472   Accepted: 2873 Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers. The way is…
Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 16839   Accepted: 5625 Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers. The way is…
Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 10907   Accepted: 3336 Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers. The way is…
Strange Way to Express Integers Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 2891   Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative i…
Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers. The way is described as following: Choose k different positive integers a1, a2, …, ak. For some non-negative m, divide it by ev…
http://poj.org/problem?id=2891 题意就是孙子算经里那个定理的基础描述不过换了数字和约束条件的个数…… https://blog.csdn.net/HownoneHe/article/details/52186204 这个博客提供了互质情况下的代码以及由此递推出的(另一个版本的)非互质情况下的代码. 假如给出m[n],a[n]分别代表要求的除数和余数: 互质情况下: ( 做n次 ) 对不包含m[i]的所有m求积 ( 互质的数的最小公倍数 ) , exgcd求出来逆元后…
求解方程组 X%m1=r1 X%m2=r2 .... X%mn=rn 首先看下两个式子的情况 X%m1=r1 X%m2=r2 联立可得 m1*x+m2*y=r2-r1 用ex_gcd求得一个特解x' 得到X=x'*m1+r2 X的通解X'=X+k*LCM(m1,m2) 上式可化为:X'%LCM(m1,m2)=X 到此即完成了两个式子的合并,再将此式子与后边的式子合并,最后的得到的X'即为答案的通解,求最小整数解即可. #include<stdio.h> #include<string.h…
http://poj.org/problem?id=2891 711323 97935537 475421538 1090116118 2032082 120922929 951016541 15898 418373 161478614 149488440 1748022751 21618619576 810918992 241779667 1772616743 1953316358 125248280 2273149397 3849022001 2509433771 3885219405 35…
题目链接 虽然我不懂... #include <cstdio> #include <cstring> #include <map> #include <cmath> using namespace std; #define LL __int64 LL p[],o[]; LL x,y; LL ext_eulid(LL a,LL b) { LL t,d; ) { x = ; y = ; return a; } d = ext_eulid(b,a%b); t =…
求解一元线性同余方程组: x=ri(mod ai) i=1,2,...,k 解一元线性同余方程组的一般步骤:先求出前两个的解,即:x=r1(mod a1)     1x=r2(mod a2)     21式等价于x=r1+a1*m,2式等价于x=r2+a2*n联立可得:m*a1-n*a2=r2-r1=c若方程有解,则必须(a1,a2)|c设d=(a1,a2),那么如果有解,即可求得 m*a1-n*a2=d的解,m=m'则   m*a1-n*a2=c的解,m0=m'*c/d通解m*=m0+(a2/…
题面就是让你解同余方程组(模数不互质) 题解: 先考虑一下两个方程 x=r1 mod(m1) x=r2 mod (m2) 去掉mod x=r1+m1y1   ......1 x=r2+m2y2   ......2 1-2可以得到 m1y1-m2y2=r1-r2 形同ax+by=c形式,可以判无解或者解出一个y1的值 带回1式可得到一个x的解x0=r1-y1a1 通解为x=x0+k*lcm(m1,m2) 即x=x0 mod(lcm(m1,m2)) 令M=lcm(m1,m2) R=x0 所以x满足x…
我真傻,真的 我单知道这道题在(b-b1)%d!=0时要判无解,哪成想自己却没有读完这组后面的数据而直接break掉...qwqfk 当 $ x \equiv b_1 (  mod    a_1  ) $ $ x \equiv b_2   ( mod  a_2 )  $ .... $x  \equiv b_n (mod a_n)$ 且 $a_1,a_2,...,a_n$ 不互质时,正常的中国剩余定理是用不了的 所以有了EX版 求解: 我们先看第1,2个方程,它们可以转化为: x=a1*k1+b1…
一种不断迭代,求新的求余方程的方法运用中国剩余定理. 总的来说,假设对方程操作.和这个定理的数学思想运用的不多的话.是非常困难的. 參照了这个博客的程序写的: http://scturtle.is-programmer.com/posts/19363.html 这个博客举例说的挺好的:http://blog.csdn.net/mishifangxiangdefeng/article/details/7109217 hdu 3579 Hello Kiki 中国剩余定理(不互质的情况) 对互质的情况…
http://poj.org/problem?id=2891 Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 11970   Accepted: 3788 Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express no…
http://poj.org/problem?id=2891 Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 16849   Accepted: 5630 Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers. The way is…
本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia 题目大意 求解一组同余方程 x ≡ r1 (mod a1) x ≡ r2 (mod a2) x ≡ r3 (mod a3) ...... x ≡ rk (mod ak) 的解x(a1,a2,a3,.....ak 并不一定互质).如果不存在则输出-1. 输入格式 有多组数据,每组数组第一行为k,后面有k行,每行两个数,代表ai,ri. 输出格式 每一行对应每一个询问的解x. 样例输入 2 8 7 11…
http://poj.org/problem?id=2891 题意:求最小的$x$使得$x \equiv r_i \pmod{ a_i }$. #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <iostream> using namespace std; typedef long long ll; void ex(ll a, l…
http://poj.org/problem?id=2891 结果看了半天还是没懂那个模的含义...懂了我再补充... 其他的思路都在注释里 /********************* Template ************************/ #include <set> #include <map> #include <list> #include <cmath> #include <ctime> #include <deq…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ2891 题意概括 给出k个同余方程组:x mod ai = ri.求x的最小正值.如果不存在这样的x,那么输出-1.不满足所有的ai互质. 题解 UPD(2018-08-07): 本题做法为扩展中国剩余定理. 我写了一篇证明:链接:https://www.cnblogs.com/zhouzhendong/p/exCRT.html 代码就不要看了,很久之前写的,太丑了. 代码 #include <cs…
0.引子 每一个讲中国剩余定理的人,都会从孙子的一道例题讲起 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 1.中国剩余定理 引子里的例题实际上是求一个最小的x满足 关键是,其中r1,r2,--,rk互质 这种问题都有多解,每一个解都为最小的解加上若干个lcm(r1,r2,...,rk),这个不用我证了吧(-_-||) 解决这个问题的方法是构造法, 先构造k个数 满足, 这样就保证 ,但是由于 bi 乘了除 ri 以外所有 r,所以bi模其它的 r 都为 0, 再把所有 b…
Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 8193   Accepted: 2448 Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers. The way is…
P4777 [模板]扩展中国剩余定理(EXCRT) excrt模板 我们知道,crt无法处理模数不两两互质的情况 然鹅excrt可以 设当前解到第 i 个方程 设$M=\prod_{j=1}^{i-1}b[j]$ ,$ res$是前$ i-1 $个方程的最小解 则$ res+x*M$ 是前 $i-1 $个方程的通解 那么我们求的就是 $res+x*M ≡ a[i] (mod b[i])$ $<=> x*M - y*b[i] = a[i]-res$ 用exgcd求出的解为 t (当且仅当 gcd…
I. Strange Way to Express Integers 题目描述 原题来自:POJ 2891 给定 2n2n2n 个正整数 a1,a2,⋯,ana_1,a_2,\cdots ,a_na​1​​,a​2​​,⋯,a​n​​ 和 m1,m2,⋯,mnm_1,m_2,\cdots ,m_nm​1​​,m​2​​,⋯,m​n​​,求一个最小的正整数 xxx,满足 ∀i∈[1,n],x≡ai (modmi ),或者给出无解. 输入格式 多组数据. 每组数据第一行一个整数 nnn:接下来 nn…