上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要: 二次扫描与换根法 用于解决无根树,对于每一个节点作为根时都要统计 做法: 1.先以任意一个节点为根,做树形DP,保存每个节点的DP值 2.然后自上而下dfs,对于每个节点考虑以他为根的最大值 cpp include include include include using namespace st 阅读全文
posted @ 2018-03-21 08:46 Mr_Wolfram 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 树状数组 + 倍增 动态维护第k大 注意倍增是 include include include include using namespace std; const int MAXN = 100005; int n, c[MAXN], lg[MAXN], po[MAXN], sum, ans, nu 阅读全文
posted @ 2018-03-20 20:52 Mr_Wolfram 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 树形分组背包 注意顺序 cpp include include include include include include using namespace std; const int MAXN = 305; vector g[MAXN]; int dp[MAXN][MAXN], num[MAX 阅读全文
posted @ 2018-03-20 11:44 Mr_Wolfram 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 树型DP 一个人不能和他的直接上司一起去,那么就分别保存这个人去和不去的最大值 注意转移方程 cpp include include include include using namespace std; const int MAXN = 7005; int n, num[MAXN], dp[MA 阅读全文
posted @ 2018-03-20 09:45 Mr_Wolfram 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 树状数组 本题数据有误 对于每一个点用权值树状数组维护在这个点之后之前的比他大和比他小的数 cpp include include include include include include include using namespace std; define lson rt 1; if(po 阅读全文
posted @ 2018-03-19 20:12 Mr_Wolfram 阅读(335) 评论(0) 推荐(0) 编辑
摘要: Treap 的合并 首先感谢 @Capella 的DeBug 其次,这是由一个 & 号引发的血案 注意对于所有修改操作都要 & Treap的合并, 启发式合并,对于每一个节点都 insert ,注意垃圾回收 cpp include include include include include de 阅读全文
posted @ 2018-03-19 19:40 Mr_Wolfram 阅读(208) 评论(1) 推荐(0) 编辑
摘要: 区间DP 手动模拟一下,我们发现本题就是一个左右加数的区间DP cpp include include include include include include using namespace std; const int MAXN = 1005, MOD = 19650827; int nu 阅读全文
posted @ 2018-03-19 15:07 Mr_Wolfram 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 区间DP 拆链成环,然后区间DP即可,注意初始化,以及每个地方都要遍历到 cpp include include include include include define inf 0x3f3f using namespace std; int num[205], dp[205][205][2], 阅读全文
posted @ 2018-03-19 11:06 Mr_Wolfram 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 多重背包 + 贪心 本题是一道多重背包问题,但是如果用朴素的多重背包会T,可以考虑二进制拆分,或单调队列优化 但是本题是一道判定性问题,所以我们有贪心策略,即对于没一种面值来说,选用尽量少的 i 种硬币, 用 used 数组来记录当前面值所需的 i 种硬币最少是多少 cpp include incl 阅读全文
posted @ 2018-03-19 08:41 Mr_Wolfram 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 树状数组求法(权值树状数组) $O((N + M) log M)$ 对于值域较大的要离散化 cpp include include include include include using namespace std; const int MAXN = 40005; int init() { in 阅读全文
posted @ 2018-03-19 08:17 Mr_Wolfram 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 单点修改,区间查询 cpp include include include include include define ll long long using namespace std; const int MAXN = 500005; ll init() { ll rv = 0, fh = 1; 阅读全文
posted @ 2018-03-18 20:49 Mr_Wolfram 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 并查集 首先将 sum[l, r] 的奇偶性转换成 sum[1, l 1] 和 sum[1, r] 的奇偶性是否相同 注意是 l 1 然后维护并查集,有边带权和扩展域两种做法 边带权 若两数奇偶性相同,边权为 0 ,若不同,边权为 1 ,然后异或处理即可 cpp include include in 阅读全文
posted @ 2018-03-16 21:01 Mr_Wolfram 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 线性DP 本题的阶段很明显,就是完成了几个请求,但是信息不足以转移,我们还需要存储三个服务员的位置,但是三个人都存的话会T,我们发现在阶段 i 处,一定有一个服务员在 p[i] 处,所以我们可以只存另外两个人的位置,而且本题要滚动数组,采用刷表法比较好 cpp include include inc 阅读全文
posted @ 2018-03-16 16:09 Mr_Wolfram 阅读(289) 评论(0) 推荐(1) 编辑
摘要: DP优化经典 设 dp[i][j] 表示以 b[j] 结尾的 a[i] 以前的 LCIS 的长度 cpp include include include include include define inf 0x3f3f3f3f using namespace std; const int MAXN 阅读全文
posted @ 2018-03-16 11:49 Mr_Wolfram 阅读(216) 评论(0) 推荐(1) 编辑
摘要: 线性DP 本题的正解是杨氏矩阵与钩子定理 但是这道题用DP的思想非常好 但是这样会MLE... cpp include include include include include using namespace std; unsigned int dp[31][31][31][31][31], 阅读全文
posted @ 2018-03-16 10:07 Mr_Wolfram 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 辣鸡并查集 用并查集记录最近的可行点 cpp include include include include include using namespace std; const int MAXN = 100005; int fa[MAXN], n, ans; struct good{ int co 阅读全文
posted @ 2018-03-15 21:25 Mr_Wolfram 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 线性基 首先我们发现,对于一条路径走过去再走回来是没有意义的, 所以我们可以没有任何其他影响的取得一个环的异或和 所以我们预处理出来所有环的异或和,求出他们的线性基,然后任找一条 $1 \sim n$ 的路径,找出异或和的最大值 cpp include include include include 阅读全文
posted @ 2018-03-15 08:40 Mr_Wolfram 阅读(373) 评论(1) 推荐(0) 编辑
摘要: 线性基求第 k 小异或值 http://www.cnblogs.com/Mr WolframsMgcBox/p/8567844.html 这道题消元下来是一个上三角矩阵,代码简单,但是不使用与本题的情况 本题需要消成一个对角矩阵, cpp include include include includ 阅读全文
posted @ 2018-03-14 20:21 Mr_Wolfram 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 异或空间下的线性基模版 异或空间下求线性基,本质还是高斯消元,参见 http://www.cnblogs.com/Mr WolframsMgcBox/p/8562924.html 求最大值是一个贪心的过程,从高位到低位,如果异或起来可以更大,就异或 cpp include include inclu 阅读全文
posted @ 2018-03-14 15:21 Mr_Wolfram 阅读(208) 评论(1) 推荐(0) 编辑
摘要: 线性基 通过题目描述可以感觉到就是要求线性基, 线性基的求法是高斯消元,消完以后剩下的x的系数非 0 的就是线性基 本题有一个贪心策略,每次挑选价格最小的来消掉其他的元 线性基优化版 cpp include include include include include define eps 1e 阅读全文
posted @ 2018-03-14 09:22 Mr_Wolfram 阅读(158) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页