
数位dp
ljq真的不能再吃了
珍惜每一天
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 2089 数位dp
hdu 2089 题意就是不要连续的 6 2 ,4也不行 所以我们记录一个pre 如果pre是6 那么i不能是2 ,当然 i如果是4 也直接continue掉 然后用最基本的数位dp就能做啦 犹豫区间不会影响dp值 所以只用一次memset 本质是查询不会影响值就可以完成 /* 20181011 数位dp */ #include <cstdio> #include <i...原创 2018-10-13 16:36:31 · 100 阅读 · 0 评论 -
hdu 4374 F(x) 数位dp
hdu 4374 题意把一个int数二进制拆分 然后给你一个a叫你输出f(x)<=f(a)的所有值 我们咋做呢 看了别人的题解 用一个二维dp dp[pos][sum]代表到pos位置凑出sum需要多少值 我们要注意 sum一定是<=all的 所以如果sum>all 那么直接return 0 然后由于不受前导0影响 所以直接用一个limit就行了 由于本质不会被查询改...原创 2018-10-13 16:40:54 · 192 阅读 · 0 评论 -
POJ 3252 数位dp
POJ 3252 题目就是给你一个区间 问你这个区间内有多少个数满足二进制的0的数目大于1的数目 我们不难想到我们要把这个数变为二进制存储 然后在dfs里面我们知道 如果有前导零 并且这位是零 那么我们是不统计的 如果没有前导零 而且这位是零 我们加一 否则减一 由于2^32是范围 所以我sta设置32 如果>= 32说明0>=1 否则 1 > 0不符合题意 #in...原创 2018-10-15 11:34:07 · 208 阅读 · 0 评论 -
Codeforces 1036 C 数位dp
cf 1036 C 数位dp 题意就是给你一个区间的数 问你有区间内有多少个数满足各位数字非零的不超过3个 我们可以和POJ 3252进行比较 发现就是一样的题 改一下就过了哈哈 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #inclu...原创 2018-10-15 11:38:26 · 298 阅读 · 2 评论 -
hdu 3709 Balanced Number 数位dp
hdu 3709 题意 给你一个区间 问你区间内有多少数满足 以一个轴作为中轴 每个位置上的数乘上到中轴的距离左边的等于右边的 我们如何考虑 我们知道 如果一个数都是0 那么在数位dp统计的时候 会被我们认为是满足条件的 第二 我们如何统计呢 我们枚举中轴的位置 让中轴从1到数的位数 这样我们只要求和 (pos-station)*数加起来就是我们的答案 由于从左向右相加 所以当sum<...原创 2018-10-15 13:13:16 · 207 阅读 · 0 评论 -
BZOJ 1799 self 数位dp
bzoj 1799 题意给你一个区间 让你求区间内的数满足各位上的数相加是原数的一个约数的数有多少个 我们不难想到状态转移方程因为最多有162位 那么我们利用加法的余数定理 将他不断的%已知的p p从1 到 9 * pos,然后判断的时候也就是pos 到了 -1 我们要看余数是不是0并且 被除数是不是我们定的这个p 用数位dp解决 三维dp /* bzoj 1799 */ #inclu...原创 2018-10-15 18:27:39 · 185 阅读 · 0 评论