CSDN同步 前置知识: 浅谈单调队列 简单背包问题 这篇文章我们主要研究 单调队列优化 \(\text{dp}\) 如何用于背包问题。 \(\text{01}\) 背包 \(n\) 个物品,背包体积为 \(V\),每个物品有 \(v_i\)(价值)和 \(w_i\)(重量),每个物品只有 $1$ ...
分类:
其他好文 时间:
2020-07-12 22:20:57
阅读次数:
60
一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。 有些房间由恶魔守卫 ...
分类:
其他好文 时间:
2020-07-12 20:52:47
阅读次数:
66
LINK:骑士 本来是不打算写的 发现这道题在tarjan的时候有一个坑点 所以写出来记录一下。 可以发现图可能是不连通的 且一个连通块中是一个奇环树。 做法:类似tarjan找割点 然后把环给拉出来 枚举环首是否选择 分类讨论即可。 一个坑点是 找环的时候 因为不是建立圆方树所以栈中存有上个连通块 ...
分类:
其他好文 时间:
2020-07-12 20:35:39
阅读次数:
61
题目链接 174. 地下城游戏 题目分析 今天做题翻车了,从左上角往右下走考虑的cases好多,直接没做出来翻车。后来看了评论区才得出下面的答案。。 我们从右下角开始做会比较容易理解了,dp[i][j]代表进入dungeon[i][j]的地方需要的最小生命值。 我们这个最小生命值其实取决于其(右侧和 ...
分类:
其他好文 时间:
2020-07-12 20:34:11
阅读次数:
59
CSDN同步 前置知识: 简单 \(\text{dp}\),队列。 首先我们看一道题目:原题链接 简要题意: 给定一个长为 \(n\) 的数组,要求 不能选连续超过 \(m\) 个数,问选出数的最大值。 \(n \leq 10^5 , a_i \leq 10^9\). 注:本题将作为 作者讲解单调队 ...
分类:
其他好文 时间:
2020-07-12 18:38:29
阅读次数:
62
题目 P2858 [USACO06FEB]Treats for the Cows G/S 思路 \(dp\)。 \(dp[i][j]\) 表示现在已经取了 \(i\) 个并且有 \(j\) 个是从左边取得的最优解。 状态转移方程: \(f[i][j] = max(f[i - 1][j] + a[n ...
分类:
其他好文 时间:
2020-07-12 17:04:13
阅读次数:
74
题目链接 题目大意:给定$n$个宝物,每次随机抛出一个宝物,奖励分数为$p_i$。但如果选这个宝物必须选过它的前置宝物集合。共进行$K$轮问最优策略下的期望。 $n\leq 15,-10^6\leq p_i\leq 10^6$ 看到数据范围,状压很容易想到。 设$f[i][j]$表示到了第$i$轮, ...
分类:
其他好文 时间:
2020-07-12 15:00:20
阅读次数:
53
分析:逆向dp class Solution { public int calculateMinimumHP(int[][] dungeon) { if(dungeon.length == 0 || dungeon[0].length == 0) return 0; int m = dungeon. ...
分类:
其他好文 时间:
2020-07-12 14:16:14
阅读次数:
42
E. K-periodic Garland 题意 给出一个长度为 n 的 01 串,现在规定一个串如果相邻两个 1 的位置相隔为 k ,那么这个串就是好串,现在你可以将某个位置的字符翻转,问最少需要多少次可以把这个串变成一个好串? 思路 本来是练习DP的,但是想着想着跑偏了。 好串格式应该是0000 ...
分类:
其他好文 时间:
2020-07-11 19:33:40
阅读次数:
40
背包问题: 问题描述有$n$件物品, 每件物品的体积为$V_i$,价值为$W_i$, 有一个体积为$V$的背包, 求总体积不大于$V$的所有物品总价值最大是多少 01背包问题: 每件物品只能用一次 状态表示: \(dp[i][j]\) 集合:所有选法 条件:仅从前$i$个物品中选择,而且使得总体积不 ...
分类:
其他好文 时间:
2020-07-11 14:28:28
阅读次数:
57