【学习笔记】CF582D Number of Binominal Coefficients

注意 P P P事实上不会影响复杂度,因为关于组合数,我们有一个非常经典的结论: ( n + m m ) \binom{n+m}{m} (mn+m)包含的 P P P的幂的次数等于 n n n m m m P P P进制下做加法的进位次数。这样,我们只需要关心进位的次数,而不必知道每一位具体是多少。

这个结论的证明也不困难。考虑答案是 ∑ i ≥ 1 ⌊ n + m p i ⌋ − ⌊ n p i ⌋ − ⌊ m p i ⌋ \sum_{i\ge 1}\lfloor\frac{n+m}{p^i}\rfloor-\lfloor\frac{n}{p^i}\rfloor-\lfloor\frac{m}{p^i}\rfloor i1pin+mpinpim,那么只要在第 i i i位进位了就会贡献 1 1 1,所以就证完了。

感觉我在废话。。。但是我们也可以顺便发现,答案肯定不会超过 ∣ A ∣ |A| A,所以 α \alpha α的范围也是假的。

传统的数位 D P DP DP都是从高往低位处理,但是这题不一样,因为涉及到进位所以似乎从低往高位处理会更自然一些,所以数位 D P DP DP的方向其实是都可以的,总之用一个 01 01 01状态记录一下就好了。还要用 01 01 01状态记录一下是否进位,然后记录一下进位的次数,这道题目就做完了。

复杂度 O ( ∣ A ∣ 2 ) O(|A|^2) O(A2)

需要把 A A A转化成 P P P进制。这个直接模拟高精就行了,因此不再赘述。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值