- 原题链接:CF582D
- 题意简述:给定\(p,k,A\),求满足\(m \leq n \leq A\)的二元组\(n,m\),使得\(\binom{n}{m} \equiv 0(\mod p^k)\)
- \(A \leq 10^{1000},p,k \leq 1e9\)
- 首先考虑题目等价于\(\nu_p(\binom{n}{m}) \ge k\)
- 考虑\(kummer\)定理,\(\nu_p(\binom{n+m}{n})\)等于\(n+m\)在\(p\)进制下进位的次数,于是每一位相对不怎么依赖于其他位,考虑数位\(dp\)
- 有注意到其实\(\nu_p{\binom{n}{m}} \leq log_p{A} \leq log_2{A}\),所以\(k\)实际上不是很大
- 一般地,我们设\(dp[i][k][0/1][0/1]\)表示\(dp\)到\(i\)位,进了\(k\)次,上一位有没有进位,有没有最高位限制
- 但是我们注意,有没有最高位限制需要从高到低\(dp\),而进位需要从低到高,怎么办呢
- 其实我们可以发现最高位限制也可以从低到高,我们魔改一下,改成前\(i\)位是否\(\leq A\)的前\(i\)位即可
- 太困了,不想写代码,先咕咕
如果有误劳请大神指出
posted @
2021-05-07 23:18
y_dove
阅读(
77)
评论()
编辑
收藏
举报