
线段树
ZHXU1998
这个作者很懒,什么都没留下…
展开
-
[线段树进阶] 区间最长长度类型 Tunnel Warfare HDU - 1540 约会安排 HDU - 4553
Tunnel Warfare HDU - 1540https://vjudge.net/problem/HDU-1540这题 找最长连续空间 一开始默认都连续D 破坏一个点 断开Q 查询 包含X 最长的区间长度R 倒着恢复破坏的点区间最长长度的题 只要理解了 只有3个状态1.左端连续2.右端连续3.中间连续一般 区间长度题就容易处理了#include <bits/std...原创 2019-11-03 16:39:14 · 161 阅读 · 0 评论 -
Codeforces Global Round 5 D. Balanced Playlist
D. Balanced Playlisthttps://codeforces.com/contest/1237/problem/DEvery morning, you choose a track. The playlist then starts playing from this track in its usual cyclic fashion. At any moment, you r...原创 2019-10-26 15:38:16 · 209 阅读 · 0 评论 -
Codeforces Round #595 (Div. 3) D2. Too Many Segments (hard version) [线段树]
D2. Too Many Segments (hard version)https://codeforces.com/contest/1249/problem/D2题意 :给了n个线段区间让你尽可能的删最少的线段 使每个区间线段覆盖次数少于k次思维题 D1直接贪过去 我们找这个区间最远R的 剪掉 这样一定对后面的最优D2 暴力就找最远的显然不合适了这里我想的 优先队列 存之前到这个点所有...原创 2019-10-24 15:17:32 · 189 阅读 · 0 评论 -
线段树|树状数组+离线处理总结
https://blog.youkuaiyun.com/qq_40831340/article/details/91404694此题博客进阶版本Different GCD Subarray Query HDU - 5869问你这个区间有多少不同GCDGCD 最多也就log个 对于每个数据 我们分别存放 从1到它 可以有什么GCD之后 就是HH项链了 我们把处理出GCD往里面扔存最后一个#incl...原创 2019-09-21 00:35:18 · 248 阅读 · 0 评论 -
[树链剖分] P3313 [SDOI2014]旅行(动态开点 线段树)
P3313 [SDOI2014]旅行https://www.luogu.org/problem/P3313我们 单点修改城市的信仰 和 开销询问 路径上 同信仰的城市 开销的花费和 or路径上最大值显然 我们树链剖分完 直接建立 1e5 颗线段树 是最方便的 而且是单点修改 确保了我们时间上 和空间上的复杂度保证我们考虑动态开点 来降低内存上的开销注意细节。我在查询最大值 sum时 没...原创 2019-09-03 23:49:02 · 194 阅读 · 0 评论 -
树链剖分 题型总结二
P1505 [国家集训队]旅游https://www.luogu.org/problem/P1505这道题 是边剖我们要注意的是 我们的一条边上路权 可以分配给这条树下 深度较深的 节点上 边权转点权就好而且 更要注意的是 我们的LCA 这个点的权不应该算入 因为他算上了 他父亲到他的路 所以这时候 idx[x] + 1 跳过就好#include <bits/stdc++.h>...原创 2019-09-03 23:39:44 · 153 阅读 · 0 评论 -
树链剖分 题型总结一
#include <bits/stdc++.h>#define debug(x, str) cout << (str) << " = [ << : " << (x) << " ]" << endl;//#define fastio ios::sync_with_stdio(0),cin.tie(0);usin...原创 2019-09-03 23:26:44 · 201 阅读 · 0 评论 -
线段树进阶总结二 (区间取模开根)
P4145 上帝造题的七分钟2 / 花神游历各国洛谷 区间开根最多开几次根就变成1了 这里我们选择 维护区间 和 如果区间和等于区间长度 不更新不等于 更新到底 反正最多跟新不了几次正好问的也是区间和。。#include <iostream>#include <cmath>using namespace std;typedef long long ll;...原创 2019-08-17 08:44:26 · 409 阅读 · 0 评论 -
线段树进阶总结一 DFS序 欧拉序(括号序)
DFS序前置的几道题线段树DFS序 1 单点更新 区间查询https://blog.youkuaiyun.com/qq_40831340/article/details/84501232线段树DFS序 2 区间子树更新 单点查https://blog.youkuaiyun.com/qq_40831340/article/details/84501478以上都是关于统计 跟改子树的欧拉序这里我们可以处理出 ...原创 2019-08-16 19:53:38 · 637 阅读 · 0 评论 -
[最短路优化] Codeforces 786B. Legacy (线段树优化建图)
这建立图的方式 网络流 也可以出 只能说 出题人毒瘤啊图是类似线段树结构 动态开点参考来源https://blog.youkuaiyun.com/KIDGIN7439/article/details/83623451线段树优化建图。建立两棵线段树,其上点的点权分别表示“到达这个区间内所有点的最小花费”和“到达这个区间内任意一个点的最小花费”。对于第一种路直接加边即可对于第二种路,添加从v到第...原创 2019-08-21 19:11:12 · 354 阅读 · 0 评论 -
二维数点问题 (从线段树到CDQ分治)
http://acm.hdu.edu.cn/showproblem.php?pid=1541#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5 + 10;int n, cnt;struct node { int x, y; bool operator ...原创 2019-08-21 13:29:22 · 2509 阅读 · 0 评论 -
2019CCPC-网络选拔赛 HDU-6703 array (主席树 or 线段树)
CY提供的 主席树思路https://blog.youkuaiyun.com/chenyume/article/details/100045386题意:给出一个序列,保证序列是一个1~n的全排列,q次操作,两种类型,一是给a[i] a[i]a[i]加107 10^7107,另一种是给出r,k,询问一个最小的数字x,使得x>=k x>=kx>=k,x不等于区间[1,r]内的任何一个数...原创 2019-08-24 10:06:01 · 343 阅读 · 0 评论 -
2019HDU杭电多校第六场 HDU 6638 Snowy Smile (二维最大矩阵和|线段树)
一个巨大的矩阵 1e9 之间 稀疏矩阵现在给了一些点权值 让你找一个矩形 圈主的权值全拿了 问最多可以拿多少hdu MAXsum 有一维的题 不带修改如果带修改 也只是 线段树维护 最大子段和的题https://blog.youkuaiyun.com/qq_40831340/article/details/90726050这次 变成二维的了我们选择离散化数据 枚举上下边界 用子段和最大的...原创 2019-08-10 20:41:36 · 337 阅读 · 0 评论 -
[线段树] CodeForces - 920F SUM and REPLACE (数学优化)
[线段树] CodeForces - 920F SUM and REPLACE (数学优化)https://vjudge.net/problem/1349242/origin题意:给出一个数组,有两个操作,一个操作把区间所有数都变成其因子个数,另一个操作询问区间和。一个树的约束个数 最多 2∗sqrt(n)2*sqrt(n)2∗sqrt(n) 我每次 变成它的约束个数 最多也就30次到1了...原创 2019-08-20 09:19:57 · 239 阅读 · 0 评论 -
[线段树] Codeforces 482B Interesting Array (思维小优化)
Codeforces 482B Interesting Array(线段树)题目大意:给定一个长度为N的数组,现在有M个限制,每个限制有l,r,q,表示从a[l]~a[r]取且后的数一定为q,问是否有满足的数列。考虑维护 30颗线段树 每个代表这位二进制 0 1区间修改 区间查 这线段树代表的二进制位 覆盖区间 与 q 这位二进制 是一样的如果q 是 0 但是 这树区间二进制 ...原创 2019-08-20 08:41:07 · 231 阅读 · 0 评论 -
2019年牛客多校第八场 Explorer (线段树+可撤销并查集)
线段树 上套每个区间可以有哪些并查集一直向下 如果已经有大区间的管道到n 这个点覆盖区间线段树 往下就不必要走了然后学会了 安秩合并(启发式搜索) 不能压缩路径 我们把大的合并到小的上面 就使得 长的 被查询的的路径 尽可能慢的长 这样不压缩路径 不超时 的完成 我们合并 和 实现撤销的操作#include <bits/stdc++.h>using namespace s...原创 2019-08-19 13:12:25 · 244 阅读 · 0 评论 -
2019HDU杭电多校第三场 HDU 6606 Distribution of books (DP+线段树)
题目要使得最大值最小?考虑二分答案 对于每次二分答案(假设为x),如何判定x能否满足分为k份的要求呢?考虑动态规划dp[i] = max(dp[j]) + 1; (sum[i] - sum[j] <= x)令dp[i]表示前i个数最多能分成几段, 则 如果直接dp,时间复杂度为n^2,显然会TLE!考虑用平衡树维护或者离散化后权值线段树维护,总体复杂度n*log(n)...原创 2019-08-08 11:06:39 · 226 阅读 · 0 评论