
组合数学
huanzhizun
这个作者很懒,什么都没留下…
展开
-
polay定理
#include#include#include#includeusing 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 · 979 阅读 · 0 评论 -
poj 1850组合数学
很简单的组合问题。原创 2014-05-05 14:46:56 · 754 阅读 · 1 评论 -
卢斯卡定理模板(大数组和)
#include#include#include#include#includeusing 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 · 1032 阅读 · 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 · 2704 阅读 · 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 · 763 阅读 · 0 评论