组合数学
huanzhizun
这个作者很懒,什么都没留下…
展开
-
polay定理
#include #include #include #include using namespace std; int gcd(int a,int b) { while(b^=a^=b^=a%=b) ; return a; } void polya(int n,int m) { int s=0,i,j,p; for(i=1;i<=n;i++)原创 2014-04-28 12:59:08 · 946 阅读 · 0 评论 -
poj 1850组合数学
很简单的组合问题。原创 2014-05-05 14:46:56 · 725 阅读 · 1 评论 -
卢斯卡定理模板(大数组和)
#include #include #include #include #include using namespace std; __int64 p; __int64 jieji[200005]; __int64 ppow(__int64 n,__int64 m) { __int64 s=1,k=n%p; while(m>0) { if(m&1)原创 2014-04-28 12:57:35 · 1007 阅读 · 0 评论 -
欧拉错排公式
void init() { s[0]=0; s[1]=0; s[2]=1; int i; for (i=3;i<=100;i++) s[i]=(i-1)*(s[i-1]+s[i-2])%mod; }原创 2014-04-28 12:38:51 · 2664 阅读 · 0 评论 -
hdu 5201 The Monkey King 生成函数
下面是BC官方题解:这题的本质是求 x1+x2+x3+……+xm=n 且 x1>x2,x3,x4,……,xm 这个方程有多少整数解。 可以枚举 x1.设当前 x1=u,那么问题转化为求 x1+x2+x3+……+xm=n−u 且 u>x2,x3,x4,……,xm,可以用生成函数来解决。 每一个项的生成函数是 f(x)=1+x+x2+……+xu−1=1−xu1−x 那么m−1个相加的生成函数是 G原创 2015-04-07 12:59:08 · 731 阅读 · 0 评论