
其他oj
stormjing7
这个作者很懒,什么都没留下…
展开
-
AcWing 278. 数字组合(简单背包问题)
AcWing 278. 数字组合题目给你 n 个数,让你从中选出一些数,使其和为 m,问一共有多少方案?n <= 100, m <= 10000分析简单的背包问题。看成背包容量为 m,n 个物品。①:状态表示集合:dp[i][j]dp[i][j]dp[i][j] 表示用前 i 个数,和为 j 的所有方案的集合属性:方案的数量②:状态转移根据最后一位来划分集合,选...原创 2020-01-10 08:50:49 · 452 阅读 · 0 评论 -
AcWing 277. 饼干 (特殊的集合划分方式)
AcWing 277. 饼干题目有 m 块饼干分给 n 个人,要求每人至少分一块。同时每一个人有一个怨气值 a[i],假设有 g[i] 个人比他分到的饼干多,那么这个人产生的怨气就是 a[i] * g[i]。问最后怎么分配饼干使得怨气值总和最小,输出任意具体方案?分析所有分配方案的集合太大了。考虑缩小最优解集合。首先肯定要分配的尽可能一样,这样就不会产生怨气。如果不可避免的产生怨气,那么...原创 2019-11-26 20:32:00 · 446 阅读 · 0 评论 -
AcWing 276. I-区域(状态机 dp + Hard)
AcWing 276. I-区域题目给出 n 行 m 列矩阵,和一个参数 k,求 k 个格子组成的凸联通块最大权值和。(凸连通块就是形状是凸性的)。n < 30, m <分析此处凸包定义不严谨,可以直接理解成连续的若干行,每行的左端点列号先递减、后递增,右端点列号先递增、后递减。(这里的递增递减都是不严格的)那么这样就可以从每一行入手,考虑每行选取的起点和终点。①: 状态...原创 2019-11-14 22:39:50 · 273 阅读 · 2 评论 -
AcWing 275. 传纸条 (dp 状态优化)
AcWing 275. 传纸条题目给一个 m 行 n 列矩阵,当前位置在(1,1),需要走到(m,n)然后再走回来,走到一个点可以拿走当前的值,但是每个点只能走一次,求最后能得到的最大值。分析如果只有一条路线就很简单了。现在要回去,可以看成同时从(1,1)走两条不相交的路线,状态表示可以用 dp[x1][y1][x2][y2]dp[x1][y1][x2][y2]dp[x1][y1][x2]...原创 2019-11-14 19:31:04 · 263 阅读 · 0 评论 -
AcWing 274. 移动服务 (递推三种出边dp)
AcWing 274. 移动服务题目在平面上有 L 个点,有三个服务员在初始给出的三个点上,并且题目给出平面上点两两之间的距离。随后有 n 个请求,每发出一个请求,需要派一个服务员去(只能去一个),花费就是距离。问满足所有请求的最小花费。L < 200, n < 1000分析首先爆搜肯定能出结果,对于每个请求枚举三个服务员。思考如何用动态规划做:①: 状态表示(经验)集...原创 2019-11-13 22:12:16 · 259 阅读 · 0 评论 -
AcWing 273. 分级 (序列型DP + 前缀最值优化)
AcWing 273. 分级题目给一个序列 A,长度 n < 3e3。你需要构造出序列 B,且序列 B只能不增或者不降。求 S 的最小值。S=∑i=1N∣Ai−Bi∣S=\sum_{i=1}^{N}\left|A_{i}-B_{i}\right|S=i=1∑N∣Ai−Bi∣分析题目关键(性质):一定存在一组最优解 B,B 序列的每一个元素都在 A 序列中出现过。其实自己画几个...原创 2019-11-12 21:06:45 · 407 阅读 · 0 评论 -
AcWing 272. 最长公共上升子序列 (线性DP + 前缀最值优化)
AcWing 272. 最长公共上升子序列题目名字就是题目,给出两个序列A,B,求最长公共上升子序列。(n < 3e3)分析线性dp。①: 状态表示(经验)集合:dp[i][j]dp[i][j]dp[i][j] 表示所有在 A[1..i]A[1..i]A[1..i] 和 b[1..j]b[1..j]b[1..j] 中出现过,且最后以 b[j]b[j]b[j] 结尾的最长公共上升...原创 2019-11-12 19:44:01 · 243 阅读 · 0 评论 -
Acwing 271. 杨老师的照相排列(线性dp求方案数)
Acwing 271. 杨老师的照相排列题目分析https://www.bilibili.com/video/av69678938根据闫氏 dp 分析法,原创 2019-11-11 16:41:37 · 398 阅读 · 0 评论 -
noip 关押罪犯(二分 + 染色)
noip 关押罪犯题目给一个无向图,让把顶点分成两部分,要求两个集合里最大边的权值最小。分析可以用扩展并查集,下面二分做法:先二分枚举答案,即最大边,然后看大于答案的边所构成的图是不是二分图。注意要找最大边最小的值,即找二分右边最小的值。代码#include <cstdio>#include <cstring>#include <iostrea...原创 2019-07-26 10:05:41 · 194 阅读 · 0 评论 -
CodeForces 199D (BFS 或 DFS)
CodeForces 199D题目有两个平行的序列 1 到 n,初始的时候你在上序列 1 位置,每次可以选择跳一下,有三种方式,位置 x +1 ,x - 1,或者跳到另外一个序列的 x + k 位置。同时还有一个值,初始为 0,每次加 1,你挑一下,这个值加一下,要保证任何时候位置值都要大于这个值。问位置值能否超过 n。分析直接搜索即可(DFS 或者 BFS),要注意剪枝。不要找重复的状态...原创 2019-07-17 21:09:32 · 306 阅读 · 0 评论 -
计蒜客信息学7月普及组模拟赛 - C 收获(逆向DP)
计蒜客信息学7月普及组模拟赛 - C 收获题目有 n 个地点,每个点有可能是果树或者亭子。初始有一个兴奋度 w,经过果树可以选择“收获” 一次,收获值为当前兴奋度 w∗a[i]w * a[i]w∗a[i],但是兴奋度会下降 k%k\%k%;经过亭子可以选择放弃 w∗a[i]w*a[i]w∗a[i] 的收获值,但是兴奋度会上升 c%c\%c%。问从 1 走到 n,能获得最大收获值?分析代码...原创 2019-07-13 17:59:44 · 585 阅读 · 0 评论 -
洛谷-P1352 没有上司的舞会(树形dp模板题)
洛谷-P1352 没有上司的舞会题目给一颗树,n 个节点,每个点都有权值,选了一个节点,那么它的儿子们就不能被选。求选取一部分节点后权值最大多少?分析树形dp,用记忆化搜索。dp[x][0]dp[x][0]dp[x][0] 表示以 xxx 节点为跟的子树,不选 xxx 节点 情况下,最大权值。dp[x][1]dp[x][1]dp[x][1] 表示以 xxx 节点为跟的子树,选 xxx ...原创 2019-06-21 14:52:36 · 235 阅读 · 0 评论