
数位dp
acblacktea
永不放弃
展开
-
hdu 3709 Balanced Number 数位dp
瞎猜的规律:除0以外 每个数只有一个中心或者没有,中心是本题定义的中心 dp[i][mid][sum] 代表给第i位填数, 中心点定义为mid, 比i高的位与中心的距离为sum 距离定义左正右负 坑点数组要开大和0要特殊考虑#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#define LL原创 2016-08-31 15:44:31 · 340 阅读 · 0 评论 -
codeforces 55D Beautiful numbers 数位dp
dp[i][lcm][mod] i 推到第几位 lcm 为 比i高的位的值的最小公倍数, mod为此时的数值 %(lcm(1, 2, 3, 4, 5, 6, 7, 8, 9) = 2520)的价值 dp[i][lcm][mod] 的值为这个状态时 0 - (i -1)位选择的方案数使其最后数值%所有位的lcm为0 因为2520能够整除任意由1 - 9 形成的最小公倍数所以%2520 最后判原创 2016-08-31 19:29:50 · 312 阅读 · 0 评论 -
spoj BLANNUM 数位状压dp
这题刚开始想的关系不对是因为没有考虑这个奇偶是相对于出现的数字来说的 所以dp[1024][1024][21][2] 一维代表出现的数字的状压形记录,二维表示出现数字奇偶的记录,三维代表推到第几位,四维代表是否有前导非零数 然后数位dp就行了#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#inc原创 2016-09-01 10:50:15 · 382 阅读 · 0 评论 -
hdu 4507 吉哥系列故事――恨7不成妻 数位dp
dp[i][mod1][mod2][0] 为 第i位后 数位和%7为mod1 数值%7为mod2 的满足条件的累加值的和 dp[i][mod1][mod2][1] 为 第i位后 数位和%7为mod1 数值%7为mod2 的满足条件的累加平方值的和 dp[i][mod1][mod2][2] 为 第i位后 数位和%7为mod1 数值%7为mod2 的满足条件的数量和 然后累加值 和 数量都是最普通原创 2016-09-01 15:58:20 · 373 阅读 · 0 评论 -
hdu 4352 XHXJ's LIS 状压数位dp
求a - b 的按每位值来最长lis长度为k的个数 当求lis时 每加入一个数看此时的lis中有没有数大于等于它且前一个数小于它,有的话将这个位置替换成这个数,没有的话把它填入到末尾 lis+1 所以dp[i][sym][len] 代表 推到第i位,此时组成状态为sym, 最后lis长度为len的方案数 注意处理前导0#include<cstdio>#include<algorithm>#原创 2016-09-01 20:49:35 · 377 阅读 · 0 评论 -
hdoj 5787 K-wolf Number 数位dp xjb搞水过
二维记录前五个数的转态和先后顺序 数组53MB水过。。。。#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#define LL long longusing namespace std;LL dp[18][100001][4];LL l, x[20];bool judge(LL n, LL k原创 2016-09-01 22:55:51 · 529 阅读 · 0 评论