组合数取模
文章平均质量分 72
neither_nor
这个作者很懒,什么都没留下…
展开
-
BZOJ4591 [Shoi2015]超能粒子炮·改
由于模数较小,考虑一下卢卡斯定理在模p意义下,将式子化简如图化简过程中由于带模的项可以预处理,所以把带除的项合并到一起n,k小于p的S可以预处理,C可以卢卡斯算#include#include#include#include#include#include#include#include#include#include#include#includ原创 2016-06-15 18:29:26 · 1392 阅读 · 0 评论 -
BZOJ4403 序列统计
L~R就相当于0~R-L长度为n,元素的值取0~m的不降序列个数就是对长度为1~n的求和就是上卢卡斯定理#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespac原创 2016-06-16 17:20:51 · 1044 阅读 · 0 评论 -
BZOJ2962 序列操作
看这数据范围,我还以为是分块……分完了块发现复杂度n根号n*400根本过不了,然后发现根本不用分块,直接线段树就行了 每个区间维护c=0到20的时候的答案,认为当c=0时答案为1 合并两个区间的时候就枚举左边选i个右边选j个,乘起来加到选i+j的答案上去,类似卷积 考虑如何打两个修改操作的标记 首先说翻转操作,把所有c为奇数的答案取反,把加标记取反,就可以了,下传的时候先传翻转再传原创 2016-09-04 19:52:46 · 699 阅读 · 0 评论 -
BZOJ4705 棋盘游戏
TC SRM 555 DIV1 的原题……我们发现进行了一系列操作后黑格子的数量只与有多少行被进行了奇数次操作以及有多少列被进行了奇数次操作有关假设有i行进行了奇数次操作,j列进行了奇数次操作,那么黑格子的数量等于i*m+j*n-2*i*j那么我们枚举一个i,如果n-2*i不得0,那么j=(s-i*m)/(n-2*i),否则如果i*m==s,则j可以取0~min(c,m)之间的任意值原创 2016-11-03 15:55:43 · 813 阅读 · 1 评论 -
BZOJ2111 [ZJOI2010]Perm 排列计数
我们把整个序列看成一棵树,x的左儿子是2x,右儿子是2x+1这样问题就变成了给这棵树标号,儿子的标号必须比父亲大dp即可f[i]表示以i为根的子树,在标号集合已经确定的情况下的标号方案数如果i是叶子,f[i]=1如果i只有1个儿子,f[i]=f[2i]如果i有两个儿子,f[i]=f[2i]*f[2i+1]*C(siz[2i]+siz[2i+1],siz[2i])siz为原创 2016-12-29 18:36:44 · 596 阅读 · 0 评论 -
BZOJ4710 [Jsoi2011]分特产
我们可以考虑先计算出不限制每个人必须分得至少一个特产的方案数,设为f,然后利用容斥原理得出每个人至少分得一个特产的方案数,设为gg[i]=f[i]-sigma j=1 to i-1 C(i,j)*g[j]那么只需考虑如何求f,设f[i][j]表示前i种特产,一共j个人,不要求每人至少分一个的方案数,则f[0][j]=1,f[i][j]=f[i-1][j]*C(a[i]+j-1,j-1),即原创 2017-01-18 10:58:30 · 767 阅读 · 0 评论