-
CF582D Number of Binominal Coefficient
- 原题链接:CF582D
- 题意简述:给定(p,k,A),求满足(m leq n leq A)的二元组(n,m),使得(inom{n}{m} equiv 0(mod p^k))
- (A leq 10^{1000},p,k leq 1e9)
- 首先考虑题目等价于(
u_p(inom{n}{m}) ge k)
- 考虑(kummer)定理,(
u_p(inom{n+m}{n}))等于(n+m)在(p)进制下进位的次数,于是每一位相对不怎么依赖于其他位,考虑数位(dp)
- 有注意到其实(
u_p{inom{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)位即可
- 太困了,不想写代码,先咕咕
如果有误劳请大神指出
-
相关阅读:
第10组 Alpha冲刺(4/6)
第10组 Alpha冲刺(3/6)
第10组 Alpha冲刺(2/6)
第10组 Alpha冲刺(1/6)
第10组 团队Git现场编程实战
第10组 团队项目-需求分析报告
团队项目-选题报告
【软件工程】Alpha冲刺(4/6)
【软件工程】Alpha冲刺(3/6)
【软件工程】Alpha冲刺(2/6)
-
原文地址:https://www.cnblogs.com/y-dove/p/14743141.html
Copyright © 2020-2023
润新知