![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构——线段树
又又大柚纸
山东大学
展开
-
[APIO2015]八邻旁之桥
【题目链接】 洛谷 P3644 【解析】 K == 1: 首先,位于同侧的直接处理,剩下的便是跨区的情况。 而跨区的情况过河的花费为定值。 设两边的位置分别为 a[i],b[i],桥的位置为 pos。 则 ans = Σ abs(a[i] - pos) + Σ abs(b[i] - pos)。 此时 ans 的值只与其数值有关,所以可将 a,b,合并为 c。 即 ans = Σ...原创 2018-07-08 23:02:53 · 216 阅读 · 0 评论 -
[POI2011]ROT-Tree Rotations
【题目链接】 洛谷 P3521 BZOJ 2212 【解析】 贪心,使一个非叶子结点的两棵子树前序遍历逆序对最少,得出的便是最优解。 证明: 因为交换一个非叶子结点的两棵子树,对该子树内叶子结点与子树外结点组成的逆序对个数无影响,所以局部最优解就是最优解。 将二叉树上的每个结点的子树情况用一棵权值线段树表示,每次合并即可。 【代码】 #include<cstdio> ...原创 2018-07-08 23:12:49 · 440 阅读 · 0 评论 -
[HEOI2016/TJOI2016]排序
【题目链接】 洛谷 P2824 [HEOI2016/TJOI2016]排序 BZOJ 4552: [Tjoi2016&Heoi2016]排序 【解析】 因为本题只有一次查询,所以可以二分这个数。 每次将大于等于 mid 的数赋值为 1,小于 mid 的数赋值为 0。最终的结果便是第一个满足排序后查询的位置上是 1 的数。 于是只要对 01序列 排序。 可以用线段树维护这个操作...原创 2018-07-13 21:51:40 · 331 阅读 · 0 评论 -
[NOI2016]区间
洛谷 P1712 [NOI2016]区间 BZOJ 4653: [Noi2016]区间 【解析】 数据这么大,肯定要先离散化啦。 可以将区间按照 len 从小到大排序,反正这样不会影响答案。 利用尺取法的思想,用两个指针扫描一遍。 当不存在一个点的被覆盖次数 >= m 时,R++; 当存在一个点的被覆盖次数 >= m 时,L++。 此时的答案便是 len(R) - le...原创 2018-07-13 22:16:47 · 277 阅读 · 0 评论 -
[AHOI2005]航线规划
【题目链接】 洛谷 P2542 [AHOI2005]航线规划 BZOJ 1969: [Ahoi2005]LANE 航线规划 【解析】 图上的删边、删点操作一般都是通过离线转化为倒序加边、加点操作,这一题也不例外。而图论中关于联通的问题基本上都是 Tarjan 算法或者生成树。 在原图中生成一棵树,该树上所有的边一定都是关键路径。将删边转换为加边后,每次加边可以看做是将树上的一段路径全部赋...原创 2018-07-14 23:05:56 · 2998 阅读 · 0 评论 -
【模板】严格次小生成树
【题目链接】 洛谷 P4180 【模板】严格次小生成树[BJWC2010] 【解析】 从 Kruskal 算法的贪心思想可以很自然的联想到严格次小生成树与最小生成树仅有一条边的差距。于是我们可以先求出最小生成树,再枚举非树边,而这一条边与树中的边一定会构成一个环。利用倍增或树剖求出这个环上边权最大的树边,但因为要求的事严格次小生成树,所以还要维护一个次小值。 【代码】 // luogu-...原创 2018-07-14 23:24:36 · 755 阅读 · 0 评论 -
数据结构——线段树——李超线段树
李超线段树 现在考虑这样一个问题: 动态维护一个平面直角坐标系,支持查询与直线x=kx=kx=k相交的线段交点中纵坐标的最大值。 如图,查询结果为绿色直线与x=kx=kx=k交点的纵坐标。 插入 记录seg(o)seg(o)seg(o)表示当前 ...原创 2019-02-12 17:23:38 · 360 阅读 · 0 评论