![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数位 DP
文章平均质量分 56
.
做一只大熊猫
让优秀成为一种习惯!
展开
-
Fast Bit Calculations LightOJ - 1032(数位 dp)
题目链接题意让我们求 1~n 中的每个数二进制连续 1 的个数。思路老数位 dp 水题了,但是我们在记录状态的时候 dp 要开三维,dp [i][j][k] 分别记录当前在第 i 层,从根节点到当前第 i 层的节点的搜索路径上的 1 的个数,k 表示从 当前节点到最后一层的中包含 1 的个数。需要注意数位 dp 最难的就是要把状态记录完整、不重复!!!代码#include <bits/stdc++.h>using namespace std;#define db do原创 2021-06-08 19:59:29 · 96 阅读 · 0 评论 -
Generating Palindromes LightOJ - 1033(数位 dp)
题目连接题意给我们一个数 n,让求 0~n 中所有数的连续 1 的数量和。某个数的连续 1 的数量和,这个数的相邻 bit 位都是 1,那么连续 1 数量 + 1思路老数位 dp 了,这题一开始 dfs 记忆化 dp [pos][pre] , 只开了两维,是无法完全记录状态的 (是因为当前这个 dp 状态不仅受 1~pos 位中 连续 1 的数量影响,还受 pos+1 到 p位之间的连续 1 影响!!!,p 为 当前某个数二进制位的位数),所以求的方案总是少… 因此我们把 dp 数组开原创 2021-05-30 21:14:25 · 72 阅读 · 0 评论