gcd、同余问题
文章平均质量分 79
Werky_blog
这个作者很懒,什么都没留下…
展开
-
51nod 1119 机器人走方格V2(求组合数,费马小定理+快速幂/逆元+gcd)
额,,,走方格不是走边。杨辉三角形,从A出发到每个点的走法数等于它左边点和上边点的走法相加1 1 1 11 2 3 41 3 6 101 4 10 20可以看出结果为C(min(n-1,m-1),n+m-2 ) 令m+n-2=m, m-1=n, 即c(n, m)=m!/((n-m)!*n!)%原创 2017-10-20 22:03:54 · 219 阅读 · 0 评论 -
POJ 2115(解线性同余方程)
注意:for(int i=2;i!=1;i++) 循环到 i 值溢出时,会重新从0开始加。#include#include#include#define ll long longusing namespace std;void gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1;y=0;} else{ gcd(b,原创 2017-10-23 13:08:27 · 214 阅读 · 0 评论 -
POJ 2891 解线性同余方程组
大意:给出k个模方程组:m mod ai = ri。求m的最小正值。如果不存在这样的m,那么输出-1.思路:lcm是广义的,lcm(m1,m2)表示m1,m2序列的最小相等的值。。。。。。。算了,不会推导,直接用吧。#include#include#include#define ll long longusing namespace std;int n;ll a原创 2017-10-23 15:12:51 · 228 阅读 · 0 评论 -
带提交: hdu 1573 X问题(一元同余方程组)
#include#include#include#define ll long longusing namespace std;void gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1;y=0;} else{ gcd(b,a%b,d,y,x);y-=x*(a/b);}}int n,N;ll a[100005],r[原创 2017-10-23 20:14:03 · 182 阅读 · 0 评论 -
51 nod 中国剩余定理
题目:点击打开链接前提是除数数组m[i]是两两互质的。x=a [ i ](mod m[ i ]) wi=M/mi,wi*Pi=1(mod mi)ans=a1w1P1+a2w2P2+……ajwjPj#include#include#include#include#define ll long longusing namespace std;const int ma原创 2017-10-23 22:48:58 · 212 阅读 · 0 评论 -
hdu 2588 GCD (欧拉函数)
题目:https://cn.vjudge.net/problem/HDU-2588gcd(x,n)>=m,设gcd(x,n)=i,所以有 i * a=x,i *b =n ;保证 i >=m,枚举 i 即可。但是数据太大,我们可以枚举符合条件的小于sqrt(n)的 i 即可,同时把 n / i 枚举出来由x#include#include#include#include#原创 2017-10-25 00:19:22 · 288 阅读 · 0 评论 -
bzoj 2818 GCD(欧拉函数)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2818思路:求1数对(x,y)有多少对.可以写成求1数对(x,y)有多少对.这就成了x,y互质,于是 欧拉(y)就求出了与y互质的x个数,即(x,y)对数,i当然小于n,枚举每个i,即n/i,向下取整,把所有对应欧拉(y)求出,这里用前缀和处理即可。用线性筛数组改成原创 2017-10-25 11:02:41 · 267 阅读 · 0 评论 -
蓝桥杯 PREV-36 包子凑数(完全背包+gcd定理)
题目:思路:又学了一个定理:如果所有数的最大公约数不为1,则他们无法组成的数有无穷个;反之,则有有限个。然后完全背包,把背包容量写大点就行。别chai,一完全背包就方案数,这么大容易超int,赋为1就行了。#include<bits/stdc++.h>#define ll long long intusing namespace std;const int N=100010; ...原创 2018-03-29 17:31:04 · 278 阅读 · 0 评论 -
2018宁夏网络赛 B Goldbach(miller-rabin素数测试(含卡迈尔克数))
题目:https://nanti.jisuanke.com/t/25985题意:让你求出符合哥德巴赫猜想的任意两个加数。思路:数太大,用miller-rabin素数测试。#include<bits/stdc++.h>#define ll unsigned long long intusing namespace std;ll ModMul(ll a,ll b,ll n){//快...原创 2018-05-05 14:12:48 · 684 阅读 · 4 评论