区间最大值,nlogn预处理,1查询,不能动态修改。 令 $f[i][j]$ 表示 $[i,i+2^j-1]$ 的最大值。 显然, $f[i][0]=a[i]$ 。 根据定义式,写出状态转移方程: $f[i][j]=max(f[i][j-1],f[i+2^{j-1}][j-1])$ 。 我们可以这么 ...
分类:
其他好文 时间:
2019-03-04 20:46:39
阅读次数:
175
令 $f[i][j]$ 表示 $i$ 的 $2^j$ 辈祖先, $f[i][0]$ 就表示 $i$ 的父节点。 可以得到状态转移方程 $f[i][j]=f[f[i][j-1]][j-1]$ 。当没有 $2^j$ 辈祖先时 $f[i][j]=0$ 一遍 DFS 计算即可 查询 先往上2进制跳到同深度, ...
分类:
其他好文 时间:
2019-03-04 20:36:08
阅读次数:
153
题目: 思路: 求两个串的最长公共子序列,则这个最短的串就是给出的两个串的长度和减去最长公共子序列的长度。 状态转移方程: 如果s[i-1]==t[j-1]就有dp[i][j] = dp[i-1][j-1]+1; 否则有dp[i][j] = max(dp[i-1][j], dp[i][j-1]) d ...
分类:
其他好文 时间:
2019-02-17 13:06:52
阅读次数:
118
简单$\text{dp}$ 我们设$\text{dp[i][j]}$表示前$\text{i}$位除以$\text{3}$的余数为$\text{j}$的个数,那么可以明显的推出状态转移方程 $\text{dp[i][0]=dp[i 1][1] mod[2]+dp[i 1][2] mod[1]+dp[i ...
分类:
其他好文 时间:
2019-02-10 23:06:52
阅读次数:
211
最近智商有点不在线。其实一直不在线。 题目 先是想用$f[i][j][k][0/1/2]$表示摆了i行时有j列空着,k列有了一个炮,且当下摆了0/1/2个的状态,转移方程写的出来但是极其繁琐。于是又设法听取评讲者题解修改状态,最后的012完全可以删去。那么仍可以表示这一行那些列摆过1个,那些列摆过0 ...
分类:
其他好文 时间:
2019-02-10 00:15:25
阅读次数:
178
状压DP入门 最短Hamilton路径 Description 给定一张 n(n≤20) 个点的带权无向图,点从 0~n 1 标号,求起点 0 到终点 n 1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n 1 不重不漏地经过每个点恰好一次。 Input Format 第一 ...
分类:
其他好文 时间:
2019-02-09 21:02:37
阅读次数:
215
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1911 [算法] 设前i个士兵"修正"后的最大战斗力为fi 令sumi表示x的前缀和 显然 , 有状态转移方程 : fi = max{ fj + a * (sumi - sumj) ^ ...
[题目链接] http://poj.org/problem?id=1180 [算法] 首先 , 用fi表示前i个任务花费的最小代价 有状态转移方程 : fi = min{ fj + sumTi(sumCi - sumCj) + S(sumCn - sunCj)} 直接进行转移的时间复杂度为O(N ^ ...
分类:
其他好文 时间:
2019-02-06 22:40:30
阅读次数:
185
[luogu 2766] 最长不下降子序列问题 "传送门" 第一问: $O(n^2)$ 的DP求LIS 为了下面叙述方便,我们将DP过程讲一遍 子状态:dp[i]表示以a[i]结尾的LIS长度 初始条件:dp[i]=1 状态转移方程:$dp[i]=dp[j]+1(j include include ...
分类:
其他好文 时间:
2019-02-05 16:52:50
阅读次数:
159
C - Kalila and Dimna in the Logging Industry 很容易能得到状态转移方程 dp[ i ] = min( dp[ j ] + b[ j ] * a[ i ] ), 然后斜率优化一下。 一直以为炸精度了, 忽然发现手贱把while 写成了if 。。。。 ...
分类:
其他好文 时间:
2019-02-03 23:56:43
阅读次数:
347