首页 > 其他分享 >数位DP

数位DP

时间:2024-07-08 21:22:37浏览次数:16  
标签:val int pos limit DP dp 数位

数位 \(DP\)

前言

终于有时间来填这个大坑了啊。

数位 \(DP\) 是一种比较冷门的动态规划问题。

其一般都具有以下特征:

出现连续的数字

失去某一位,不能选哪个数

整除某个数字

在一个区间里面寻找合法解的数量

打法

递推法 和 递归法在数位 \(DP\) 中较为常见。

递推法为先处理出普遍的情况,再一位一位填数。

而递归法是运用记忆化搜索的思想,转 \(DP\) 为搜索,在枚举的过程中即填完数。常数较大,但好写好理解。

这里着重讲一下 递归法 的模板。

我们的传参中有这么几个:

\(pos\) : 目前在哪一位

\(val\) : 此位选的值

\(limit\) : 关于这一位是否有最大选的限制 (会细讲)

\(head\) : 此位是否为前导零

最后是记忆化搜索最需要的东西 : \(dp\) 数组。

其实这个东西是有板子的,就像数据结构一样。

\(limit\) 用法详解

由于我们是在一位一位的枚举,一位一定是有取的最大数字的。

正常来说,一个个位数字的取值范围是在 \([0 , 9]\)

但是我们举个例子:

\[114514 \]

假设我们第一位和第二位均取 \(1\) , 而第三位我们显然不能取 \([0 , 9]\) , 而是 \([0 , 4]\)

但如果是在第二位我们取 \(0\) , 显然我们此时可以取 \([0 , 9]\) 了。

于是我们得到了 \(limit\) 的转移式:

\[limit' = limit \ \& \ (i == Up) \]

\(i\) 为我们这次的枚举量, \(Up\) 为在取满时的最大值(和 \([0 , 4]\) 一样)

还是很好想的对吧

标签:val,int,pos,limit,DP,dp,数位
From: https://www.cnblogs.com/hangry/p/18290704

相关文章

  • 生成扩散模型漫谈(四):DDIM = 高观点DDPM
    相信很多读者都听说过甚至读过克莱因的《高观点下的初等数学》这套书,顾名思义,这是在学到了更深入、更完备的数学知识后,从更高的视角重新审视过往学过的初等数学,以得到更全面的认知,甚至达到温故而知新的效果。类似的书籍还有很多,比如《重温微积分》、《复分析:可视化方法》等。回到......
  • 生成扩散模型漫谈(一):DDPM = 拆楼 + 建楼
    说到生成模型,VAE、GAN可谓是“如雷贯耳”,本站也有过多次分享。此外,还有一些比较小众的选择,如flow模型、VQ-VAE等,也颇有人气,尤其是VQ-VAE及其变体VQ-GAN,近期已经逐渐发展到“图像的Tokenizer”的地位,用来直接调用NLP的各种预训练方法。除了这些之外,还有一个本来更小众的选择——扩......
  • 生成扩散模型漫谈(二):DDPM = 自回归式VAE
    在文章《生成扩散模型漫谈(一):DDPM=拆楼+建楼》中,我们为生成扩散模型DDPM构建了“拆楼-建楼”的通俗类比,并且借助该类比完整地推导了生成扩散模型DDPM的理论形式。在该文章中,我们还指出DDPM本质上已经不是传统的扩散模型了,它更多的是一个变分自编码器VAE,实际上DDPM的原论文中也......
  • 生成扩散模型漫谈(三):DDPM = 贝叶斯 + 去噪
    到目前为止,笔者给出了生成扩散模型DDPM的两种推导,分别是《生成扩散模型漫谈(一):DDPM=拆楼+建楼》中的通俗类比方案和《生成扩散模型漫谈(二):DDPM=自回归式VAE》中的变分自编码器方案。两种方案可谓各有特点,前者更为直白易懂,但无法做更多的理论延伸和定量理解,后者理论分析上更加......
  • Oracle impdp只导入元数据占用大量空间以及如何删除空段
     Oracleimpdp只导入元数据占用大量空间以及如何删除空段 从某个库导出整个库的元数据,在另外一个新库导入元数据,发现导入时间久并且占用了大量空间。有好几张的空表甚至能占用十几二十G大小的空间,看了一下都是按天分区的间隔分区表,每个分区会有8M的大小。 通过在源库使用......
  • 生成扩散模型漫谈(一):DDPM = 拆楼 + 建楼
    说到生成模型,VAE、GAN可谓是“如雷贯耳”,本站也有过多次分享。此外,还有一些比较小众的选择,如flow模型、VQ-VAE等,也颇有人气,尤其是VQ-VAE及其变体VQ-GAN,近期已经逐渐发展到“图像的Tokenizer”的地位,用来直接调用NLP的各种预训练方法。除了这些之外,还有一个本来更小众的选择——扩......
  • Acwing 5729.闯关游戏 状压DP
    Acwing5729.闯关游戏状压DP题目链接题意:现在进行一个闯关游戏,一共有\(n\)个关卡,第\(i\)个关卡的分数为\(w_i\)。另外还有\(k\)个联动彩蛋。如果玩家通过第\(x\)个关卡后,紧接着通过了第\(y\)个关卡,就可以获得额外\(c\)分。现在你需要恰好通过\(m\)个不同关卡,顺......
  • 区间DP专栏 第一章(双色马、神医胡青牛、Deque等)
    #A.神医胡青牛题目描述胡青牛是“倚天屠龙记”中的神医(但从此题目看出很贪财),每天都有N多(N<=2000)的人来求他治病,这些人排成一队,从1开始编号直到N,每个人手里都拿着一个牌子,其上的值用Ai(1<=i<=N,1<=ai<=1000)代表,表示自己愿意付给胡大牛多少钱做为酬金。胡神医每次从队......
  • DDP:微软提出动态detection head选择,适配计算资源有限场景 | CVPR 2022
    DPP能够对目标检测proposal进行非统一处理,根据proposal选择不同复杂度的算子,加速整体推理过程。从实验结果来看,效果非常不错来源:晓飞的算法工程笔记公众号论文:ShouldAllProposalsbeTreatedEquallyinObjectDetection?论文地址:https://arxiv.org/abs/2207.03520......
  • ThreadPoolExecutor - 管理线程池的核心类
    下面是使用给定的初始参数创建一个新的ThreadPoolExecutor(构造方法)。publicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,longkeepAliveTime,TimeUnitun......