
数位dp
threeh20
暑假有半个月整个人像死了一样,所以更加明白生命的可贵
展开
-
ACdream 1064 完美数
http://acdream.info/problem?pid=1064 求L到r之间含有3不含有8 或者 含有8不含有3的数的数量。 大思路就是用1-r符合条件的数减去1-(L-1)符合条件的数。 至于求有多少个,就是数位dp的知识了,从高位开始向后去数。 可以先将前10,100,1000,10000,100000等中包含一个数不包含另一个数的情况打表算出来。 算的时候原创 2017-12-03 19:43:04 · 338 阅读 · 0 评论 -
hdu 2089 不要62 (数位dp+模版)
http://acm.hdu.edu.cn/showproblem.php?pid=2089 https://blog.youkuaiyun.com/wust_zzwh/article/details/52100392 这个博客讲的很细,点赞! 数位dp就是一种穷举方式,然后结合记忆化搜索来优化时间。 从高位到低位枚举。 dp数组存的其实是从不同的高位枚举到这个状态下计的数,并且不受前面...原创 2018-07-22 15:24:17 · 114 阅读 · 0 评论 -
hdu 4734 F(x) (数位dp)
http://acm.hdu.edu.cn/showproblem.php?pid=4734 这道题的dp数组存的实际上是低某些位能凑到sum的种类数,虽然仍然是从高位到低位遍历 因为A是会变得,但是低位能凑到多少是不变的,所以这样反过来想的话就不需要重新memset了。 这也是数位dp优化中的一个重要思想。 #include<bits/stdc++.h> usi...原创 2018-07-22 15:32:10 · 117 阅读 · 0 评论 -
hdu 3652 B-number(数位dp)
http://acm.hdu.edu.cn/showproblem.php?pid=3652 主要是2个状态,一个是对13取余情况,一个是第pos位时的前一位是1还是以及有13了还是什么也没有。 这样根据这一状态就可以去枚举下一位了。 #include<bits/stdc++.h> using namespace std; int dp[20][15][3];...原创 2018-07-22 15:34:42 · 101 阅读 · 0 评论 -
hihocoder1791 幸运数字(数位dp) 也是The 2018 ACM-ICPC上海大(家)都会赛 J Beautiful Numbers
http://hihocoder.com/problemset/problem/1791 题目求的是1-n中有多少个数能够整除它自己各数位上的数之和。 因为n的范围到1e12 所以这道题中各数位相加的和最大也是99 所以我们可以枚举1-99,求1-n中有多少数各数位和为i且能整除i , 就和那道B-Number一样了,只不过是进行99次数位dp而已。 #includ...原创 2018-07-22 15:54:56 · 652 阅读 · 0 评论