随笔分类 -  卢卡斯定理

摘要:不妨不管j<=i的限制。由卢卡斯定理,C(i,j) mod k=0相当于k进制下存在某位上j大于i。容易想到数位dp,即设f[x][0/1][0/1][0/1]为到第x位时是否有某位上j>i,是否卡n、m的限制的方案数。 阅读全文
posted @ 2018-11-14 00:37 Gloid 阅读(323) 评论(0) 推荐(0)
摘要:注意到模数很小,容易想到使用卢卡斯定理,即变成一个2333进制数各位组合数的乘积。对于k的限制容易想到数位dp。可以预处理一发2333以内的组合数及组合数前缀和,然后设f[i][0/1]为前i位是否卡限制的贡献就很好dp了。为什么大家都要化式子呢。 阅读全文
posted @ 2018-11-03 10:40 Gloid 阅读(209) 评论(0) 推荐(0)
摘要:没有限制的话算一个组合数就好了。对于不小于某个数的限制可以直接减掉,而不大于某个数的限制很容易想到容斥,枚举哪些超过限制即可。 一般情况下n、m、p都是1e9级别的组合数没办法算。不过可以发现模数已经被给出,并且这些模数的最大质因子幂都不是很大,那么扩展lucas就可以了。 阅读全文
posted @ 2018-08-13 19:52 Gloid 阅读(237) 评论(0) 推荐(0)