2020 Multi-University Training Contest 3---- HDU--6796、X Number(dfs+计数类dp)

题目链接

题面:
在这里插入图片描述

题意:
求区间 [ l , r ] [l,r] [l,r]中的所有数,其数位众数为 d d d,且数位众数唯一的数的个数。

题解:
先看一下官方题解:
在这里插入图片描述

我们顺着官方题解的思路,如果当前没有前导0且数位取值没有限制,那么就说明剩下的数位可以任意取值。
我们统计出在有限制的情况下,每个数位出现的次数 c n t [ i ] , 0 ≤ i ≤ 9 cnt[i],0\le i\le9 cnt[i],0i9,假设当前求 [ 0 , r ] [0,r] [0,r]区间,区间众数为 d d d的数的个数( 最终 a n s ( r ) − a n s ( l − 1 ) ans(r)-ans(l-1) ans(r)ans(l1)即可 )。

如果 l i m i t ( 数 位 限 制 ) limit( 数位限制) limit 或者 l e a d ( 有 前 导 0 ) lead(有前导0) lead0,那么就继续 d f s dfs dfs 下去。

如果没有数位限制,且没有前导0,设此时已经记录了 c n t [ i ] , 0 ≤ i ≤ 9 cnt[i],0\le i\le9 cnt[i],0i9,且剩下的可以任意填数位数为 l e n len len

我们枚举 d d d 在剩下的可选任意数的位置上出现的次数,假设这个次数为 c n t d , 0 ≤ c n t d ≤ l e n cntd,0\le cntd \le len cntd,0cntdlen ,那么现在 d d d 这个数位一共出现了 c n t [ d ] + c n t d cnt[d]+cntd cnt[d]+cntd 次。

我们设 d p [ i ] [ j ] dp[i][j] dp[i][j]为除了这一位 d d d 外,考虑了 0 − 9 0-9 09中前 i i i 个数,且一共占据了 j j

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值