数位DP
阿_波_
这个作者很懒,什么都没留下…
展开
-
数位DP _ HDU 2089
数位DP:用来解决一个区间内符号条件的数字个数,并且这个需要满足的条件与数字大小没有什么关系,只和数字的组成有一定的关系,比如求解[1,10000]中不含数字4的个数,等等数位DP实质上就是对数字的每个位置上进行枚举判断,但是在这个过程中dp会记录下之前的状态,以便后面会遇到和当前状态相同的状态,比如[0,213]中,找到所有不含数字4的个数,那么状态一般对于一个数字当百位十位分别为00和百位十位...原创 2018-05-05 10:23:46 · 143 阅读 · 0 评论 -
数位DP_ HDU 4734
这个题意思是每一个数都有一个对应的权值,比如一个数字a有n位数,那么他的权值为F(a) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1 ,这里的Ai表示数字a的第i位数,那么给两个数字a b,求解在区间[0,b]中有多少数字满足:F(x)>= F(a)看到这个题,我们也可以想到这个权值的大小和数字的大小没有任何关系,只是和数位上的数字有...原创 2018-05-05 13:15:48 · 129 阅读 · 0 评论 -
数位DP_POJ3252
我们要找给定的区间中满足下面条件的数的个数:转换为二进制,二进制中0的数量大于等于数字1的数量那么这个题中我们要考虑前导0的存在,因为枚举二进制数位的时候,前导0都需要保证不存在,首先我们知道2^31 > 2*1e9那么我们枚举的位数就可以确定在31位以内,状态的表示dp[i][j]:当前位置为i,在i位置之前的0\1状态为j,满足条件的数量,那么我们怎么保存01的状态呢?开始的想法是:我只...原创 2018-05-05 16:37:38 · 172 阅读 · 0 评论 -
数位DP_HDU 3652
寻找[0,a]中,既包含"13"又能被13整除的数字的个数(a是每一个输入)开始的思路是打表过,虽然时间再打表的时候时间长一些,但是应该是可以过的,我自己没有试我使用的方法:自己第一个想的思路是,记录下当前状态的余数,当前会否包含"13",每次保存的状态都是这样的,但是这样样例都过不了.......后来一想后面的数字和前面连接判断是否包含"13"的话,如果我前面状态保存的是一个"1"呢?那岂不是没...原创 2018-05-05 17:57:51 · 112 阅读 · 0 评论 -
数位DP_HDU 4507
个人感觉很棒很棒的题目,所以决定把题粘下来:题目 HDU 4507Problem Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=7*2 77=7*11 最终,他发现原来这一切归根到底都是因为和7有关!所以,他...原创 2018-05-06 15:25:31 · 210 阅读 · 0 评论 -
数位DP_bzoj 1026
题目中说的是求解相应区间中不含前导0,并且相邻的两个数字相差必须大于等于2的数字的数量很容易看出来是个数位DP,开始的思路:我们可以将0-9分成两类,0和9一类:因为他们如果在首位,类型号为0,不能和他们匹配的只有两个,1-8一类,不能和他们匹配有三个,类型号为1,所以dp[i][j]:表示在第i位上类型为j的数量,本以为完美的思路,wa掉了后面一想,如果当前位置为2和8,29符合条件...原创 2018-05-08 18:46:36 · 180 阅读 · 0 评论