随笔分类 - dp-数位
摘要:题目描述: 给定正整数 N,返回小于等于 N 且具有至少 1 位重复数字的正整数。 题解: 求至少有1位重复数字的正整数有点复杂,转换一下思路,求小于等于N没有重复数字的正整数的个数。定义一个$dp[pos][status][bound]$(dp定义解释戳这里)。这里的$status$借用了一下状压
阅读全文
摘要:数位动态规划是一类特殊的动态规划,它的形式一般为:给定下界$l$和上界$r$,求$[l,r]$之间满足某一要求的元素个数。一般来说,数位动态规划有一个特定的状态表达:$f[pos][stats][bound]$。简单对$pos$,$stats$,$bound$做一个说明: Pos: 第一维表示现在处
阅读全文
摘要:题意:一个二进制的数,如果0的个数大于1的个数,那么我们称这个数为Round Numbers,求给定区间(十进制表示)中Round Numbers的个数 题解:数位dp,不过这里枚举的时候lead标记就有作用了(前导零,也是为了防止状态的冲突) ac代码: Limit 以及 lead 两个参数都是为
阅读全文
摘要:题意:For a decimal number x with n digits (AnAn-1An-2 ... A2A1), we define its weight as F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1. Now you
阅读全文
摘要:约束:数位上不能出现连续的两个1(11、112、211都是不合法的) 假设就是[1,210]这个区间的个数 状态:dp[pos][pre]:当前枚举到pos位,前面一位枚举的是pre(更加前面的位已经合法了),的个数(我的pos从0开始) 先看错误的方法计数,就是不判limit就是直接记忆化 那么假
阅读全文