![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划 数位dp
捣乱天才
华东交通大学
展开
-
bzoj1026 [SCOI2009]windy数(数位dp)
题目链接:点这里!!! 题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 题解:数位dp。设dp[i][j]为第i位时第i+1位为j时符合条件的数有多少个?注意一下前导零的情况和各个位有没有填满的问题就可以了。 代码: #include #include #include原创 2016-07-10 21:39:53 · 205 阅读 · 0 评论 -
bzoj1799 [Ahoi2009]self 同类分布 数位dp
题目链接:点这里!!! 题意:给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数(1 题解: 做的第二道数位dp的题。我们可以枚举各位数字之和,最大也就9*17。 然后我们设dp[i][j][k]为当前为第i位时前i-1位的各位数字之和为j,组成的数的大小为k(对枚举的数取模之后)。然后注意下边界,随便搞就是了。 代码: #include #inclu原创 2016-07-11 20:15:18 · 936 阅读 · 0 评论 -
51nod1623 完美消除 (数位dp)
题目链接:点这里!!!! 题解: 对于一个数的消除方法是: 从高位到低位,依次让位数进栈,当到x的时候,将栈里大于x的数全部删除,如果剩下的栈里有没有x的,将x进入到栈里,并且答案加1。 简化下就是维护一个单调递增的序列,当前位为i时,我们就是求一个以第i位结尾的一个单调递增序列。 我们设dp[i][j][k]为当前位为i,还省j个消除,前i+1个递增状态为k的方案数,因为递增序原创 2016-07-12 11:41:15 · 396 阅读 · 0 评论 -
hdu4352 XHXJ's LIS(数位Dp)
题目链接:点这里!!! 题意:叫你求[L,R]区间里数(每位拆开)的最长上升子序列长度为k的数有多少? 数据范围:1 题解:数位dp。 设dp[i][j][k]为当前位是第i位,前i+1位最长上升子序列状态为j,最长上升子序列为k的情况。 j状态维护一个最长上升子序列的时候我们预处理出来更新j状态的操作,因为最长才10,2^10*10,并不难。 当然还要注意前缀全部为零原创 2016-07-17 17:26:58 · 330 阅读 · 0 评论