随笔分类 -  容斥原理

摘要:没有限制的话算一个组合数就好了。对于不小于某个数的限制可以直接减掉,而不大于某个数的限制很容易想到容斥,枚举哪些超过限制即可。 一般情况下n、m、p都是1e9级别的组合数没办法算。不过可以发现模数已经被给出,并且这些模数的最大质因子幂都不是很大,那么扩展lucas就可以了。 阅读全文
posted @ 2018-08-13 19:52 Gloid 阅读(237) 评论(0) 推荐(0)
摘要:第一眼生成函数。四个等比数列形式的多项式相乘,可以化成四个分式。其中分母部分是固定的,可以多项式求逆预处理出来。而分子部分由于项数很少,询问时2^4算一下贡献就好了。这个思路比较直观。只是常数巨大,以及需要敲一发类似任意模数ntt的东西来避免爆精度。成功以这种做法拿下luogu倒数rank1,至于b 阅读全文
posted @ 2018-08-13 02:03 Gloid 阅读(212) 评论(0) 推荐(0)
摘要:相当于给树上的每个点分配一个编号使父亲和儿子间都有连边。 于是可以考虑树形dp:设f[i][j][k]为i号点的编号为j,其子树中编号集合为k的方案数。转移显然。然而复杂度3n·n3左右,具体我也不知道是多少,但肯定跑不过。 如果状态有集合的话不管怎样底数都是3了,考虑能不能变成2。完全不能可以想到 阅读全文
posted @ 2018-08-12 14:39 Gloid 阅读(173) 评论(0) 推荐(0)
摘要:容易想到枚举恰好出现S次的颜色有几种。如果固定至少有i种恰好出现S次,那么方案数是C(M,i)·C(N,i*S)·(M-i)N-i*S·(i*S)!/(S!)i,设为f(i)。 于是考虑容斥,可得恰好i种的答案为Σ(-1)j-iC(j,i)·f(j) (j=i~min(M,⌊N/S⌋))。因为容斥是 阅读全文
posted @ 2018-08-10 23:20 Gloid 阅读(154) 评论(0) 推荐(0)
摘要:思路比较直观。设A(x)=Σxai。先把只选一种的统计进去。然后考虑选两种,这个直接A(x)自己卷起来就好了,要去掉选同一种的情况然后除以2。现在得到了选两种的每种权值的方案数,再把这个卷上A(x)。得到这个后考虑去重,其中重复的就是选了两个相同的和另外一个,那么再把选两个相同的生成函数搞出来卷上A 阅读全文
posted @ 2018-08-09 21:42 Gloid 阅读(184) 评论(0) 推荐(0)