摘要: 括号序列的dp问题模型 Codeforces314E ◦给定一个长度为n的仅包含左括号和问号的字符串,将问号变成左括号或 右括号使得该括号序列合法,求方案总数。 ◦例如(())与()()都是合法的括号序列。 ◦ n BZOJ3709 ◦在一款电脑游戏中,你需要打败n只怪物(从1到n编号)。为了打败第 阅读全文
posted @ 2019-07-24 22:40 Akaina 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 粉刷匠 bzoj1296 粉刷匠 (洛谷P4158) ◦有n条木板要被粉刷,每条木板分为m个格子,每个格子需要被刷成蓝色 或红色。 ◦每次粉刷可以在一条木板上给连续的一段格子刷上相同的颜色。每个格 子最多被刷一次。 ◦问若只能刷k次,最多正确粉刷多少格子。 ◦ n,m 这里引用zhhx的一句话:其实 阅读全文
posted @ 2019-07-24 15:02 Akaina 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 木棍加工 基础dp题 先按 长度排序,长度相同的按宽度排序(贪心)。然后求 关于宽度 的 不上升子序列覆盖数 因为dilworth定理得 (最小的)不上升子序列覆盖数=最长上升子序列长度 所以求关于宽度的最长上升子序列即可 c++ include include include using name 阅读全文
posted @ 2019-07-24 11:38 Akaina 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 物流运输 基础dp题+最短路,就是细节有点多 dp方程:设f[i]表示前i天的最少成本 则 f[i]=min(f[i], f[j] + k + (i j) w(j+1,i) ) (j include include include using namespace std; define Maxn 2 阅读全文
posted @ 2019-07-24 11:30 Akaina 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 最短路图 对于一些只能在最短路径上操作且可能同时存在多条最短路的问题时,我们可以采用建最短路图的方法:就是将在最短路径上的边放入一个新的图当中,使得问题可以在一个DAG(有向无环图)上操作。 具体实现方法:如果我们需要求从1到n的最短路图,可以 先从节点1跑一遍单源最短路 , 再从n跑一遍单源最短路 阅读全文
posted @ 2019-07-23 16:36 Akaina 阅读(548) 评论(0) 推荐(1) 编辑
摘要: DP基础(线性DP)总结 前言:虽然确实有点基础......但凡事得脚踏实地地做,基础不牢,地动山摇,,,嗯! LIS(最长上升子序列) dp方程:dp[i]=max{dp[j]+1,a[j]=h[k 1](~~k =2~~),证明:若存在h[k 1] h[k],则h[k 1]可以从h[k]中转移, 阅读全文
posted @ 2019-07-22 16:53 Akaina 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 离散化 问题模型 离散化是指对于数据范围较大(1e9),但数的个数较少(1e5)的一些数进行操作(并查集等)时,需要通过比较这些数的相对大小,将其离散化,得到"1e5"以内的“离散化数值”,然后就可以将其储存在数组中,进行并查集等操作了。 实现原理 当离散化的数据 无重复 时,可以通过记录数组下标, 阅读全文
posted @ 2019-07-22 12:16 Akaina 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 树链剖分 前言 :虽然noip基本不考,但我觉得还是多少学一点吧 问题模型 对于树上的某条路径,进行一系列操作(类似线段树上的操作) 实现原理 恰如其名,将树剖分成一段又一段的区间(树链),便于我们进行线段树的操作( 树上的线段树操作 )。将树分为重链和轻链,重链的dfs序(与其他dfs序不同,树剖 阅读全文
posted @ 2019-07-21 12:10 Akaina 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 差分约束系统 前言:在清北学堂模拟赛的差分约束题写炸了,感觉有必要来总结一下差分约束 问题模型 求解由若干 不等式 限制的一组最大或最小未知数解 思想 当我们求解形如 X1 X2 这是一道差分约束基础练习题。 给出 m 个约束条件,每个约束条件属于 𝑥𝑖 − 𝑥𝑗 ≤ 𝑤, 𝑥𝑖 − 阅读全文
posted @ 2019-07-21 11:44 Akaina 阅读(275) 评论(0) 推荐(0) 编辑
摘要: Lian_Q博客序章 阅读全文
posted @ 2019-07-21 10:53 Akaina 阅读(100) 评论(0) 推荐(0) 编辑