动态规划-数位DP
tzb592825420
这个作者很懒,什么都没留下…
展开
-
hdu2089 不要62 数位dp
题意:给定一个区间,求这个区间内不含4和62(6,2连续)的数的个数。 分析:数位dp,此题可由低位递推高位,dp[i][0]表示i位数无不吉利数字,dp[i][1]表示i位数无不吉利数字且最高位为2,dp[i][2]表示i位数有不吉利数字。 #include #include #include #include #include #include #include #include #inc原创 2015-01-27 22:30:55 · 465 阅读 · 0 评论 -
zoj3494 BCD Code ac自动机+数位dp
对01串建立ac自动机,数位dp的状态即为ac自动机的节点。 #include #include #include #include #include #include #include #include #include #include #include #include #include #define fi first #define se second #define ll long原创 2015-09-06 22:48:57 · 367 阅读 · 0 评论 -
hdu3709 Balanced Number 数位dp
经过这道题对数位dp有了更深的理解。 题意是求一个区间内有多少个平衡数,平衡数是这样定义的,以某一位数为支点,两边的数字乘力矩之和相等。 For example, 4139 is a balanced number with pivot fixed at 3. The torqueses are 4*2 + 1*1 = 9 and 9*1 = 9, for left part and righ原创 2015-08-19 14:29:27 · 300 阅读 · 0 评论 -
hdu4933 Miaomiao's Function 数位dp+大数模板
Miaomiao's Function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 228 Accepted Submission(s): 59 Problem Description Firstly ,原创 2015-08-17 16:57:47 · 444 阅读 · 0 评论 -
codeforces 55D Beautiful numbers
询问一个区间内能被它的所有非零位整除的数的个数。 数位dp,1-9的最小公倍数是2520,dp[pos][mod][lcm][f],pos是当前位置,mod取的是到当前位置%2520,实际上1-2520只有48个可取到的公倍数,因此lcm=48,表示到当前位置数位的最小公倍数,若到0位,mod%lcm[lcm]==0,则返回1,否则返回0,f表示的是之后取值的范围,当可以取任意值时这个结果对所有原创 2015-04-01 20:25:52 · 290 阅读 · 0 评论 -
zoj3845 Fixed Point
题意:求L-R有多少个x满足c&x==x,c|x==x,x^x==x,且x的二进制位中1-0的绝对值 分析:数位dp,从第0位到第31位递推,dp[i][j]表示31-i位满足条件且差值为j的方案数,flag记录0-i位是否超过边界值,若处理到31位flag认为false,则返回0。 #include #include #include #include #include #include #原创 2015-03-09 20:21:21 · 490 阅读 · 0 评论 -
cf 401D. Roman and Numbers 数位dp,状压
题意:给出两个数n,m,求x的个数,x需满足,x可由n的各位数字重新排列得到;x无前导零;x%m==0; 分析:比较简单的一道数位dp,由于n最多只有17位,可以状态压缩,dp[s][v]表示用掉集合s中的数,余数为v的个数,状态转移方程dp[s+k][(v*10+dig[k])%m]+=dp[s][v]; #include #include #include #include #includ原创 2015-02-04 23:05:55 · 573 阅读 · 0 评论 -
hdu3652 B-number 数位dp
求1-n之间含有13且能被13整除的数的个数。 记忆化搜索+数位dp. #include #include #include #include #include #include #include #include #include #include #define inf 10000000 #define pi acos(-1.0) #define eps 1e-8 #define seed原创 2015-01-28 14:14:29 · 399 阅读 · 0 评论 -
hdu3555 Bomb 水数位dp
同hud2089 #include #include #include #include #include #include #include #include #include #include #define inf 10000000 #define pi acos(-1.0) #define eps 1e-8 #define seed 131 using namespace std; ty原创 2015-01-27 22:54:20 · 425 阅读 · 0 评论 -
hdu5208 Where is Bob 数位dp
维护四个数的上下边界条件,转移使最小值最大即可。 数位dp有时只对dp赋一次-1,这时边界条件满足一定条件与后面的数是什么无关,可以直接返回,在此题中条件太苛刻,用处不大,会tle。 也可以每次都赋一次-1,这时算出一个状态的值就能赋给dp,再次用到时直接返回。 #include #include #include #include #include #include #include #i原创 2015-10-03 14:11:42 · 351 阅读 · 0 评论