数位 DP

这篇博客探讨了如何将小学和初中的数学问题转化为在线算法竞赛(OI)题目,特别是涉及页码问题和“十全十美”数的挑战。作者指出,传统的分类讨论方法可以被数位动态规划(DP)所替代,提供了一种更高效的解决方案。数位DP通常通过记忆化搜索实现,并给出了模板化的代码片段。博客内容鼓励读者以不同的视角看待问题,提升算法思维能力。
摘要由CSDN通过智能技术生成

回想一下在小学和初中遇到的两类问题:

  • 页码问题:给定一本书,页码编号 1 1 1~ 500 500 500,试求出这本书有多少页的页码上含有 1 1 1 这个数字?
  • 初一数学题:定义“十全十美”数是指一个数能被 10 10 10 整除且数位之和相加是 10 10 10 的倍数,试求…

如此这般的问题,不得不说贯穿了从小学到初中,你是否想过把它们出成一道 OI 题?没错就是在讽刺把 MO 题搬到 OI 的屑行为有人这么想了,还这么干了,于是就出现了数位 DP。

先来看一下页码问题,小学的时候我们怎么解决这个问题?是不是分类讨论?

0 − 9 0-9 09

10 − 99 10-99 1099

100 − 199 100-199 100199

200 − 299 200-299 200299

300 − 399 300-399 300399

400 − 499 400-499 400499

500 500 500

如此这般来搞,作为一个 OIer,我们要从不同的角度看待世界,仔细观察,上面有一些区间的答案是一样的,这启示我们 DP 解决问题,怎么搞呢?到了这一步,相信不难写出方程,所以先咕了明明就是不想写

数位dp就是套模板 ——lwz
(转自洛谷日报)

数位 dp 有两种实现方式,第一种是递推,恶心自己,恶心出题人,碳基生物一般不会整这种事,所以一般来说都用记忆化搜索来实现,由于上文的名言,直接上模板:

(这里由于 vjudge 上不去,鸽子了)

未 van 待续,之后可能会加一些例题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值