首页 > 其他分享 >浅谈数位DP

浅谈数位DP

时间:2022-08-24 19:35:06浏览次数:83  
标签:dots 浅谈 Sam na overline DP 数位

动态规划,是OI中极其重要的一环。
由于它的重要性,解决问题的广泛性,它衍生出了多种多样的DP。
其中,有一种特别搞人的叫做数位DP

思想

数位DP是通过每一位数字去递推,来统计从在 \([0,a]\) 中,有多少个数满足条件或者有多少种满足某一条件的方案数。
由于有一个统计的上界,所以对我们的DP会有所限制:
当你从低位往高位扫,你不一定能确定到了高位它会不会被限制;
当你从高位往低位扫,你不一定能确定到了低位它需不需要限制。
但是,有一类数位DP却是无拘无束:
Luogu P2106 Sam数
虽然它并不是严格意义上的数位DP(比如Luogu就没有给它数位DP的Tag),但是,它对我们做数位DP是很有启发意义的
为什么这道看着是数位DP的题目这么简单?
因为它题目说的是:

他将一个 k 位 Sam 数称之为 k 阶 Sam 数

一行一个整数 ans,表示 k 阶的 Sam 数的个数

因为它只要求了位数,或者说它要求的区间是 \([10^{k-1},10^k)\) 。
我们的唯一限制是位数是定下来的,每一位是0还是9我们并不关心(当然除了前导0蛤),并没有在每一位上面有什么好纠结的。
这时候我们就想了,既然只对位数有要求,或者只对首位有要求的都比较好求解,那我们是不是可以考虑把我们的问题拆分成若干个这样子的问题呢?
显然是可以的。

核心

对于 \(A=\overline{a_na_{n-1}\dots a_2a_1}\) 我们要统计 \([0,A]\) 中满足条件的数的个数,我们可以把它划分成若干个问题
\([0,A]=[0,a_n*10^{n-1})\cup[\overline{a_n0\dots00},\overline{a_na_{n-1}0\dots00})\cup\dots\cup[\overline{a_na_{n-1}\dots a_20},\overline{a_na_{n-1}\dots a_2a_1})\cup\{\overline{a_na_{n-1}\dots a_2a_1}\}\)
这是它数学的拆分,或者我们把它理解成这样:
前几位锁定了,中间某一位可以从 \(0\) 到 \(a_k\) 选择,后面几位任意选
那么,前几位对于要求的影响是可以提前处理掉的,而且在接着往后处理的时候可以直接继承。
只需要枚举中间的一位,可以用数学或者其他的方法知道有多少可行的数字。
在这里讲道理只能知道思想,重点还是要去看题目。

例题

优化

标签:dots,浅谈,Sam,na,overline,DP,数位
From: https://www.cnblogs.com/Xun-Xiaoyao/p/16614334.html

相关文章

  • 【luogu AT2366】Prefix Median(DP)
    PrefixMedian题目链接:luoguAT2366题目大意给你一个长度为2n-1的序列,你可以任意排序它们,问你有多少个不同的b数组。b数组的第i位为a数组1~2i-1区间的数的......
  • 【转载】Python(cx_oracle)的DPI-1047错误
    转自:https://blog.csdn.net/weixin_45158749/article/details/124800132 Python(cx_oracle)的DPI-1047错误步步FAN已于2022-05-1615:19:11修改981收藏文章标签:......
  • WPF中使用 WndProc 来处理Windows Messages
    WPF对应的C#程序有时需要与Window32程序进行通信,会使用到窗口过程函数来接受Windows消息。引入System.Windows.Interop命名空间,将使用到其中的HwndSource使用实例如......
  • 浅谈Python中的in,可能有你不知道的
    Python中的in,没那么简单,虽然也不难https://docs.python.org/zh-cn/3.9/reference/expressions.html#membership-test-operations6.10.2成员检测运算运算符in和no......
  • 浅谈嵌入式系统的持续集成
    持续集成(ContinuousIntegration(CI))和持续交付(ContinuousDelivery(CD))是现代软件开发中两个非常重要的概念。集成是完成交付和部署的前置条件,实现持续交付最大的难点是如......
  • 基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints
    大家好,我是等天黑。FastEndpoints是一个基于.NET6开发的开源webapi框架,它可以很好地替代.NETMinimalAPIs和MVC,专门为开发效率而生,带来了全新的开发模式和编码......
  • [USACO12JAN]Video Game G【AC自动机+DP】
    “Canamanstillbebraveifhe’safraid?”“Thatistheonlytimeamancanbebrave.”每天六点多起床,整理好寝室内务后就去图书馆研读论文和处理邮件,完成后......
  • wordpress因目录权限导致出现404错误
    然后修改php-fpm的配置文件:user=nginxgroup=nginx再然后servicenginxrestartservicephp-fpmrestart在浏览器重新访问php文件可以了。。。在apache里面php是作......
  • P2622 关灯问题II——状压dp
    本题是一道十分好的状压dp练手题基本思路初看这道题时其实并没有什么思路,在看到\(n\le10\)时才想到使用状压dp有时候搜索时间复杂度很高,也没有方法优化到多项式复杂度,......
  • 树莓派搭建WordPress博客:为博客网站配置自定义域名 11/11
    在上一篇文章中,我们通过在服务器上设置新的域名,并将新域名的指向引导到cpolar的数据通道后台入口端,让新域名的链接生效。接下来,我们就要在本地树莓派端,对cpolar进行设置,让c......