
数位DP
hrbust_wgq
当我们理解了一个东西的时候,所应该做的,是将这个东西放下去,好让更多的人明白和掌握;而不是举起来,以一种高姿态故作高深。这不是科学文化发展和传播的正道。有时候,所谓的“一言以蔽之”,不经意间,就“蔽”掉了求知者的热情和渴望,同时也就“蔽”掉了科学文化的健康传承。
把问题说清楚,尽可能让更多的人明白,是博客的宗旨。直达本质,直达底层,去术语化,用最通俗、最平易的语言和讲解方式说清“到底是什么”、“原来是这样”,是要努力的方向。
展开
-
数位dp习题整理——codeforces
数位dp习题整理——codeforces1.1800题意: 给出一个二进制数n,每次操作可以将这个数变为其二进制数位上所有1的和(3->2 ; 7->3),现在给出了一个数k,问不大于n的数中有几个数经过k次操作可以变成1。思路: 从题中我们可以看到,一次操作可以将一个数变化为其二进制 1 的个数,于是我们设 f[i] 表示二进制中有 i 个 1 的数需要几次变化才能到达 1 。...原创 2020-02-25 17:21:40 · 704 阅读 · 0 评论 -
HDU 4507 吉哥系列故事——恨7不成妻(数位DP)
与7不沾边的数需要满足三个条件。①不出现7②各位数和不是7的倍数③这个数不是7的倍数这三个条件都是基础的数位DP。但是这题要统计的不是符合条件个数,而是平方和。也就是说在DP时候,要重建每个数,算出平方,然后求和。需要维护三个值(推荐使用结构体), 假定dfs推出返回的结构体是next,当前结果的结构体是ans①符合条件数的个数 cnt②符合条件数的和 sum③符合添加数的平...原创 2020-02-16 11:36:27 · 206 阅读 · 0 评论 -
2020牛客寒假算法基础集训营第三场 E.牛牛的随机数【数位DP】
题目链接题意:从值域[l2,r2]中随机给出一个数字b。问你a⊕ b的数学期望。思路:首先要看每个区间的数字每位的0和1数量,每位对答案的贡献就是cnt1* cnt0*(1<<(i-1));那么我们怎么求区间内每位上0和1的个数呢?1.直接拆位数位dp,dp[i][j]代表枚举到第i位当前是j的1的方案数。2.还有一种拆位位运算算1-n内一共有多少1,不用数位dp取模少加个(...原创 2020-02-11 21:45:17 · 320 阅读 · 0 评论