摘要:
P3960 NOIP2017 提高组 列队 将每一行的第1到m-1个和第m列分离出来 分析知这n+1个“区间”要维护弹出第k个和插入最后 使用平衡树,一个区间若没有被算则用[l,r]表示(方伯伯的OJ) 点击查看代码 #include <stdio.h> #include <string.h> co 阅读全文
摘要:
RMQ求LCA:使用欧拉序 点击查看代码 #include <stdio.h> #include <string.h> #include <ctype.h> const int IN_SIZE = 200005, OUT_SIZE = 200005; char inbuf[IN_SIZE + 5], 阅读全文
摘要:
P3592 [POI2015] MYJ 洗车店 点击查看代码 // 此题与人的区间[a,b]有关:区间DP;将[l,p-1],[p+1][r]的区间递归计算,经过p的区间 // f[l][r][k]表示l<=a<=b<=r的洗车店的价格>=k的最大收费 // f[l][r][k]=max{f[l][ 阅读全文
摘要:
三维偏序 陌上花开 二维偏序: 先双关键字排序,用双指针算法求出横跨两个区间的个数(另外两种可以递归),然后按b归并排序 三维偏序: 先三关键字排序,用双指针算法求出横跨两个区间的左端点j的区间:用二维的做法(树状数组) 注意相同元素的影响 点击查看代码 #include <stdio.h> #in 阅读全文
摘要:
CF468D Tree 以树的重心为根 i和pi不能在同一个子树中 贪心求出方案 点击查看代码 </details> #include <set> #include <stdio.h> #include <string.h> #include <algorithm> const int N = 1e 阅读全文
摘要:
P6419 COCI2014-2015#1 Kamp 营地聚会 点击查看代码 #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <utility> #include <ar 阅读全文
摘要:
P2491 SDOI2011 消防 算法竞赛进阶指南 P374 解法3(解法2为P1099 树网的核),7FA4.3.2.5.3, LuoguP2491 SDOI2011 二分答案 mid 在树的直径上找离两端最远且距离小于 mid 的点, 判断其他点是否到这个点的距离均小于等于mid 点击查看代码 阅读全文
摘要:
P1600 NOIP2016 提高组 天天爱跑步 LCA + 桶 分为上行和下行 上行: u->v 被i看到: u在i的子树且 dep[u]-dep[i]=w[i], 用桶维护dep[st(=u)]=x的u有多少个 下行: u->v 被i看到: v在i的子树且(u不在) 到lca(u或f[u])的 阅读全文
摘要:
P5024 NOIP2018 提高组 保卫王国 f[u][0/1]表示只在以u为根节点的子树(包含u)中最小花费(u:不选/选) g[u][0/1]表示不在以u为根节点的子树(不含u)中最小花费(u:不选/选) w[u][i][0/1]表示u,u<<i不选/选,以u<<i(含)为子树除去以u为根节点 阅读全文
摘要:
P5666 CSP-S2019 树的重心 正难则反: 考虑一个点在删除哪些边的情况下会成为重心 将整棵树的重心作为根,设h[i]为i的重儿子的大小 性质: 删除i的子树中的边后i不会成为新连通块的重心 证明: 设之后i所在连通块大小为m 则剩下的sz'[i]=sz[i]-(n-m) 则m-sz'[i 阅读全文
摘要:
P3238 HNOI2014道路堵塞 点击查看代码 #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <utility> #include <array> #include 阅读全文
摘要:
BZOJ2104. Wc2009 shortest P4150 [WC2009]最短路问题 一条路线至多掉头4次(因为方格的高为6) 普遍情况:(所有情况均为左边0/2/4次拐弯 左边 右边 和右边0/2/4次拐弯构成) s-+ +-e 当左边三个与y1的交点 | | 和右边三个与y2的交点重合时 阅读全文
摘要:
P3638 APIO2013 机器人 区间DP+最短路处理环形DP 设f[l][r][i]表示合并出编号为[l..r]的机器人(在i号格子)的最少步数 转移: 1.合并机器人 2.用最短路转移:使用两个队列模拟堆 点击查看代码 </details> #include <stdio.h> #inclu 阅读全文
摘要:
P1983 NOIP2013 普及组 车站分级 差分约束 左边的点代表不必停靠的车站, 右边的点代表需要停靠的车站 对于任意左边的点 x 和右边的点 y , 则 x < y 即 x + 1 <= y o o o \ / o o o o - o - o o o o / \ o o o 图1 图2 若左 阅读全文