gcd、同余问题
文章平均质量分 79
Werky_blog
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
51nod 1119 机器人走方格V2(求组合数,费马小定理+快速幂/逆元+gcd)
额,,,走方格不是走边。 杨辉三角形,从A出发到每个点的走法数等于它左边点和上边点的走法相加 1 1 1 1 1 2 3 4 1 3 6 10 1 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 · 264 阅读 · 0 评论 -
POJ 2115(解线性同余方程)
注意:for(int i=2;i!=1;i++) 循环到 i 值溢出时,会重新从0开始加。 #include #include #include #define ll long long using 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 · 272 阅读 · 0 评论 -
POJ 2891 解线性同余方程组
大意: 给出k个模方程组:m mod ai = ri。求m的最小正值。如果不存在这样的m,那么输出-1. 思路: lcm是广义的,lcm(m1,m2)表示m1,m2序列的最小相等的值。 。。。。。。 算了,不会推导,直接用吧。 #include #include #include #define ll long long using namespace std; int n; ll a原创 2017-10-23 15:12:51 · 285 阅读 · 0 评论 -
带提交: hdu 1573 X问题(一元同余方程组)
#include #include #include #define ll long long using 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 · 232 阅读 · 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 long using namespace std; const int ma原创 2017-10-23 22:48:58 · 253 阅读 · 0 评论 -
hdu 2588 GCD (欧拉函数)
题目:https://cn.vjudge.net/problem/HDU-2588 gcd(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 · 345 阅读 · 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 · 312 阅读 · 0 评论 -
蓝桥杯 PREV-36 包子凑数(完全背包+gcd定理)
题目:思路:又学了一个定理:如果所有数的最大公约数不为1,则他们无法组成的数有无穷个;反之,则有有限个。然后完全背包,把背包容量写大点就行。别chai,一完全背包就方案数,这么大容易超int,赋为1就行了。#include<bits/stdc++.h> #define ll long long int using namespace std; const int N=100010; ...原创 2018-03-29 17:31:04 · 315 阅读 · 0 评论 -
2018宁夏网络赛 B Goldbach(miller-rabin素数测试(含卡迈尔克数))
题目:https://nanti.jisuanke.com/t/25985题意:让你求出符合哥德巴赫猜想的任意两个加数。思路:数太大,用miller-rabin素数测试。#include<bits/stdc++.h> #define ll unsigned long long int using namespace std; ll ModMul(ll a,ll b,ll n){//快...原创 2018-05-05 14:12:48 · 777 阅读 · 4 评论
分享