数位 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 · 121 阅读 · 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 · 74 阅读 · 0 评论