- 博客(6)
- 收藏
- 关注
原创 hdu 5698 求组合数(逆元+阶乘 递推公式
分析向格子里填数发现,是左斜的杨辉三角,发现规律,其实就是求C(n+m-4,m-2)的组合数求组合数用逆元+阶乘(递推)#include #include #define ll long longconst int N=200005;//1e5越界const ll M=1e9+7;using namespace std;ll fac[N]={1,1},inv
2017-01-31 14:38:17 1304
原创 hdu 4704 sum 大整数取模+费马小定理+数快速幂
求输入的n可以有几种拆分情况:如:2-->(2,11)2种3-->(3,21,12,111)4种4-->(4,31,13,22,211,112,121,1111)8种发现规律 结果 = 2^(n-1),再取模得到要求的即为 2^(n-1)%mod由于所给的n很大,10^100000,(10^3=1000......)所以用字符串读入,先用费马小定理2^n % p =
2017-01-28 15:15:38 739
原创 hdu 5976 Detachment 逆元+二分+数学
给定一个数,让你分成互不相等的n个数(n为自然数),使这些数的乘积最大,输出最大乘积。因为分的数不能相同,所以发现分的数越小越好,从2开始枚举分成2,3,4,5......x=2+3+4+....+n+s(会剩下一个s)枚举s三种情况1.s==02.s==n3.s需要预处理,add2到n个相加mul2到n个相乘处理某些值的时候要用逆元,求逆元不能超时。。
2017-01-24 00:01:23 398
原创 hdu A/B 扩展gcd
转化为ax+by=c的形式,其中b=9973#include using namespace std;int x,y;int exgcd(int a,int b){ if(b==0) { x=1; y=0; return a; } int r=exgcd(b,a%b); int t=x;
2017-01-23 20:24:56 482
原创 poj 1061 青蛙的约会 扩展gcd
青蛙相遇可列方程(x+mt)%L=(y+nt)%L,即(m-n)*t+k*L=y-x可转化为ax+by=c先求出ax+by=gcd,再将解得的x*(c/gcd)求出最小整数解即可:用x=(x*b+b)%b....(这里的b为b/gcd#include #define LL long longusing namespace std;LL exgcd(LL a,
2017-01-23 20:06:55 324
原创 hdu 2669 Romantic 扩展欧几里得求线性方程模板题
a,b互质,所以gcd=1即求ax+by=1,用扩展gcd直接求#include #include #define LL long longusing namespace std;LL x,y;LL exgcd(int a,int b){ if(b==0) { x=1; y=0; return a; }
2017-01-23 19:45:28 420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人