数位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 · 75 阅读 · 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 · 154 阅读 · 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 · 153 阅读 · 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 · 267 阅读 · 2 评论 -
hdu 3709 Balanced Number 数位dp
hdu 3709题意 给你一个区间 问你区间内有多少数满足 以一个轴作为中轴 每个位置上的数乘上到中轴的距离左边的等于右边的我们如何考虑 我们知道 如果一个数都是0 那么在数位dp统计的时候 会被我们认为是满足条件的第二 我们如何统计呢 我们枚举中轴的位置 让中轴从1到数的位数 这样我们只要求和 (pos-station)*数加起来就是我们的答案由于从左向右相加 所以当sum<...原创 2018-10-15 13:13:16 · 173 阅读 · 0 评论 -
BZOJ 1799 self 数位dp
bzoj 1799题意给你一个区间 让你求区间内的数满足各位上的数相加是原数的一个约数的数有多少个我们不难想到状态转移方程因为最多有162位 那么我们利用加法的余数定理 将他不断的%已知的pp从1 到 9 * pos,然后判断的时候也就是pos 到了 -1 我们要看余数是不是0并且 被除数是不是我们定的这个p用数位dp解决 三维dp/*bzoj 1799*/#inclu...原创 2018-10-15 18:27:39 · 145 阅读 · 0 评论