dp优化总结 一、滚动数组 典型的空间优化。 这应该是最最普通的一个优化了吧。。 对于某些状态转移第i个 只需要 用到第i 1个状态时,就可以用滚动数组,把第一维用0/1表示。 拓展1: 当一个状态转移要用到前m个转移时,我们依然可以滚起来,把第一维按模m的值滚起来。 拓展2: 若每一个决策可以选任 ...
分类:
其他好文 时间:
2019-08-27 17:08:18
阅读次数:
76
简单的概率dp,我们这里的关键是使用滚动数组,可以使得所谓的“无后效性”更加具体实现 ...
分类:
其他好文 时间:
2019-08-27 00:35:18
阅读次数:
79
看到这一道题其实和玉米田很类似,只不过多记录了前两行,其他大体细节差不多,注意滚动数组似乎不滚动更快??? Code ...
分类:
其他好文 时间:
2019-08-24 22:28:53
阅读次数:
96
https://www.luogu.org/problem/P1004 题目描述 设有N×N的方格图(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例): 某人从图的左上角的A点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走 ...
分类:
编程语言 时间:
2019-08-11 15:11:57
阅读次数:
107
T1是个容斥,我掐手指一算他为了卡容斥的正确性,绝不会把n和m出的很相近($O(n^2)$算法在nm相等的时候达到最高时间复杂度),不然就太好做了,于是开了特判+各种卡常和滚动数组优化,卡到了70分,$n^2$过100000,暴力碾标算。T2十三分钟AC没啥说的,也就是审题吧。大概是个flag了。T ...
分类:
其他好文 时间:
2019-08-10 09:22:57
阅读次数:
104
题意 买股票,中间买卖完一次后必须休息一下,求最大收益 题解 建议观看视频 https://www.bilibili.com/video/av31578180 状态转移图 buy[i] 代表当前持有股票的最大收益 sell[i] 代表当前卖出股票的最大收益 rest[i] 代表当前休息的最大收益 c ...
分类:
其他好文 时间:
2019-08-04 18:03:54
阅读次数:
86
"HDU 6578 Blank " 题意 给你$\{0,1,2, 3\}$四个数,分别填入长度为$n$的数列中,有$m$个限制条件,$l_{i}, r_{i}, x_{i}$表示在$[l_{i}, r_{i}]$区间内,只能有$x_{i}$个不同的数。问一共有多少总方案。 思路 首先, 我们可以用$ ...
分类:
编程语言 时间:
2019-07-31 09:13:18
阅读次数:
168
04年的省选这么water吗,开个滚动数组算了 cpp include include include include include define R(a,b,c) for(register int a = (b); a = (c); a) define Max(a,b) ((a) (b) ? ( ...
分类:
其他好文 时间:
2019-07-20 16:59:25
阅读次数:
106
bitset的经典优化,即把可行性01数组的转移代价降低 bitset的适用情况,当内层状态只和外层状态的上一个状态相关,并且内层状态的相关距离是一个固定的数,可用bitset,换言之,能用滚动数组是能用bitset优化的前提 ...
分类:
编程语言 时间:
2019-07-13 17:23:37
阅读次数:
161
一道略有难度的dp 设状态$dp[i][j]$表示长度为$i$,开头高度为$j$且为山峰的方案数 考虑到一个序列是对称的,所以总方案数即为$2*\sum_{i=2}^{n}dp[n][i]$ 这样我们只需考虑转移即可 首先,我们发现,如果两个数$i$与$i+1$不相邻,那么交换这两个数之后方案数不变 ...
分类:
其他好文 时间:
2019-06-03 22:20:50
阅读次数:
132