
线段树
文章平均质量分 51
olahiuj
我的女朋友不抽烟不喝酒不傲娇不化妆不存在
展开
-
hdu6638 Snowy Smile 离散 扫描线 线段树
题意给n个带权点,求最大子矩阵和做法没想到n^2log的做法,老年选手预兆考虑离散,枚举矩形的下边界,然后一行一行加入点,用线段树维护最大子段和每加入一整行我们就在线段树中查询、更新答案我的代码常数特别大,但是能过,这就很奇妙。。代码#include <stdio.h>#include <string.h>#include <algorithm>#include <vector>#define rep(i,st,ed) for原创 2020-09-17 14:11:48 · 394 阅读 · 0 评论 -
jzoj5865 假期旅行 线段树+倍增
DescriptionSolution看了题解才知道啥是ISIJ,infleaking好强啊%%%记a[i]为从i往右走不换座位能走到的最右端。我们离线然后合并同一座位相交的线段,用线段树维护一下这个a 可以发现i向a[i]连边组成了一棵树,于是问题变成求两个点的深度差,这个用倍增做就行了Code#include <stdio.h>#in...原创 2018-09-12 21:15:54 · 302 阅读 · 0 评论 -
bzoj3702 二叉树 bzoj2212 [Poi2011]Tree Rotations 线段树合并
Description现在有一棵二叉树,所有非叶子节点都有两个孩子。在每个叶子节点上有一个权值(有n个叶子节点,满足这些权值为1..n的一个排列)。可以任意交换每个非叶子节点的左右孩子。 要求进行一系列交换,使得最终所有叶子节点的权值按照中序遍历写出来,逆序对个数最少。对于100%的数据:2<=n<=200000。Solution双倍经验! 可以发现交换...原创 2018-09-14 18:01:09 · 201 阅读 · 0 评论 -
cf932F Escape Through Leaf dp+李超树
Description有一棵以 1 号点为根的树,有 n−1 条边 ui,vi,每个点两个权值 Ai,Bi。 你可以从一个点 u 跳到另一个点 v 满足 v 在 u 的子树中,并付出 Au ·Bv 的代价。 定义终止节点为没有任何儿子的节点。对于每个节点,求出从这个点出发到达任意一 个终止节点的最小代价。Constraints对于 30% 的数据,n ≤ 5∗103。对于另外 10% ...原创 2018-09-25 19:22:34 · 1001 阅读 · 0 评论 -
bzoj2124 等差子序列 线段树+哈希
Description给一个1到N的排列{Ai},询问是否存在1<=p1<p2<p3<p4<p5<…<pLen<=N (Len>=3),使得Ap1,Ap2,Ap3,…ApLen是一个等差序列。输入的第一行包含一个整数T,表示组数。下接T组数据,每组第一行一个整数N,每组第二行为一个1到N的排列,数字两两之间用空格隔开。N<=1...原创 2018-10-12 13:55:58 · 223 阅读 · 0 评论 -
jzoj4270 [NOIP2015模拟10.27]魔道研究 线段树
Description“我希望能使用更多的魔法。不对,是预定能使用啦。最终我要被大家称呼为大魔法使。为此我决定不惜一切努力。” ——《The Grimoire of Marisa》雾雨魔理沙 魔理沙一如既往地去帕秋莉的大图书馆去借魔导书(Grimoire) 来学习魔道。 最开始的时候,魔理沙只是一本一本地进行研究。然而在符卡战中,魔理沙还是战不过帕秋莉。 好在魔理沙对自己的借还和研...原创 2018-07-12 16:55:08 · 273 阅读 · 0 评论 -
bzoj1095 [ZJOI2007]Hide 捉迷藏 线段树
Description捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子。某天,Jiajia、Wind和孩子们决定在家里玩捉迷藏游戏。他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条走廊的分布使得任意两个屋子都互相可达。游戏是这样进行的,孩子们负责躲藏,Jiajia负责找,而Wind负责操纵这N个屋子的灯。在起初的时候,所有的灯都没有被打开。每一次,...原创 2018-10-07 21:58:14 · 486 阅读 · 0 评论 -
bzoj3155 Preprefix sum 线段树
DescriptionSolution只会写水题了。。可以发现每次改a[x]就是在改[x,n]的前缀和s,那么线段树区间修改区间查询即可Code#include <stdio.h>#include <string.h>#include <algorithm>#define rep(i,st,ed) for (int i=st;i<=...原创 2018-10-08 16:26:59 · 226 阅读 · 0 评论 -
bzoj4499 线性函数 线段树+矩阵乘法
Description小C最近在学习线性函数,线性函数可以表示为:f(x) = kx + b。现在小C面前有n个线性函数fi(x)=kix+bi ,他对这n个线性函数执行m次操作,每次可以:1.M i K B 代表把第i个线性函数改为:fi(x)=kx+b 。2.Q l r x 返回fr(fr-1(…fl(x))) mod 10^9+7 。1 <= n, m <= 2...原创 2018-10-08 20:07:59 · 310 阅读 · 0 评论 -
bzoj3813 奇数国 线段树+欧拉函数
Description在一片美丽的大陆上有100000个国家,记为1到100000。这里经济发达,有数不尽的账房,并且每个国家有一个银行。某大公司的领袖在这100000个银行开户时都存了3大洋,他惜财如命,因此会不时地派小弟GFS清点一些银行的存款或者让GFS改变某个银行的存款。该村子在财产上的求和运算等同于我们的乘法运算,也就是说领袖开户时的存款总和为3100000。这里发行的软妹面额是最小...原创 2018-10-08 21:07:08 · 179 阅读 · 0 评论 -
bzoj4515 [Sdoi2016]游戏 树链剖分+李超树
DescriptionAlice 和 Bob 在玩一个游戏。 游戏在一棵有 n 个点的树上进行。最初,每个点上都只有一个数字,那个数字是 123456789123456789。 有时,Alice 会选择一条从 s 到 t 的路径,在这条路径上的每一个点上都添加一个数字。对于路径上的一个点 r, 若 r 与 s 的距离是 dis,那么 Alice 在点 r 上添加的数字是 a×dis+...原创 2018-09-06 17:44:56 · 206 阅读 · 0 评论 -
bzoj1135 [POI2009]Lyz 霍尔定理+线段树
Description初始时滑冰俱乐部有1到n号的溜冰鞋各k双。已知x号脚的人可以穿x到x+d的溜冰鞋。 有m次操作,每次包含两个数ri,xi代表来了xi个ri号脚的人。xi为负,则代表走了这么多人。 对于每次操作,输出溜冰鞋是否足够。n m k d ( 1≤n≤200,000 , 1≤m≤500,000 , 1≤k≤10^9 , 0≤d≤n ) ri xi ( 1≤i≤m, 1≤ri...原创 2018-09-07 19:01:31 · 307 阅读 · 0 评论 -
bzoj1568 [JSOI2008]Blue Mary开公司 李超树
DescriptionBlue Mary 最近在筹备开一家自己的网络公司。由于他缺乏经济头脑,所以先后聘请了若干个金融顾问为他设计经营方案。万事开头难,经营公司更是如此。开始的收益往往是很低的,不过随着时间的增长会慢慢变好。也就是说,对于一个金融顾问 iii,他设计的经营方案中,每天的收益都比前一天高,并且均增长一个相同的量 PiP_iPi。由于金融顾问的工作效率不高,所以在特定...原创 2018-09-04 22:06:36 · 242 阅读 · 0 评论 -
jzoj4017 [雅礼联考DAY01]逃跑 二分+dp+线段树
DescriptionKonrad, Delfador 和 Kalenz 一行人又喜闻乐见地被追杀了。 他们面临的是一条有 N 个地点的路, 他们从 0 号地点出发, 要逃到 N 号地点去。每个地点的战斗都有一定的金币收入 Ai,也有一定的部队损失 Bi。 为了更好地逃生, Delfador 还弄到了一块传送宝石,这样一行人就能向后传送不超过 L 的距离。从一个地点传送到另一个地点时,...原创 2018-07-13 19:33:58 · 422 阅读 · 0 评论 -
bzoj5005 乒乓游戏 线段树+并查集
Description【故事の背景】鸡腿是CZYZ的著名DS,他为了树立高富帅的伟大形象决定暑假去张江大学学习(游玩)。在呆了一段时间之后,鸡腿突然发现,张江的妹子怎么这么少啊这么少啊这么少啊。为了勾搭妹子,鸡腿决定去玩乒乓游戏。【问题の描述】乒乓游戏可不是乒乓!乒乓好像也和这个游戏没啥关系。这个游戏的主角就是——区间。对于两个区间,如果(a,b)和(c,d)区间满足cSo...原创 2018-07-14 10:13:53 · 278 阅读 · 0 评论 -
bzoj5379 Tree dfs序列+线段树+lca
Description给出一棵树,要求资磁一下三个操作 1. 换根为x 2. 将x的子树内所有点权加上y 3. 记x,y的lca为z,求z所在子树内所有点权之和Solution这道题一看就非常签到,实在不会还可以LCT水分对于操作1我们不用真的换根,用一个变量root记录此时的根即可 对于操作2我们可以根据x和root的相对关系判断是dfs序上的连续一段还是它的补集...原创 2018-08-09 15:34:03 · 185 阅读 · 0 评论 -
bzoj3600 没有人的算术 替罪羊树+线段树
Description好长啊 Solution区间修改+区间查询最大值,考虑用线段树做 注意到我们需要在短时间内求出每个位置上数的rank,如果我们把这些数字插入平衡树中rank就非常好求了 考虑用替罪羊树。我们每次插入时判断一个节点是否不平衡(存在儿子的size>自己的size*α) 如果不平衡就把不平衡节点中序遍历求出来建一棵新的树 这题并没有删除操...原创 2018-08-15 22:12:48 · 262 阅读 · 0 评论 -
bzoj1112 [POI2008]砖块Klo 线段树
DescriptionN柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:从某柱砖的顶端拿一块砖出来,丢掉不要了. 2:从仓库中拿出一块砖,放到另一柱.仓库无限大. 现在希望用最小次数的动作完成任务.第一行给出N,K. (1 ≤ k ≤ n ≤ 100000), 下面N行,每行代表这柱砖的高度.0 ≤ hi ≤ 1000000Solution刷水题,下午...原创 2018-08-13 19:56:04 · 271 阅读 · 0 评论 -
bzoj5312 冒险 线段树
DescriptionKaiser终于成为冒险协会的一员,这次冒险协会派他去冒险,他来到一处古墓,却被大门上的守护神挡住了去路,守护神给出了一个问题, 只有答对了问题才能进入,守护神给出了一个自然数序列a,每次有一下三种操作。 1,给出l,r,x,将序列l,r之间的所有数都 and x 2,给出l,r,x,将序列l,r之间的所有数都 or x 3,给出l,r,询问l,r之间的最大值...原创 2018-08-18 17:38:14 · 388 阅读 · 0 评论 -
jzoj5833 Endless Fantasy 树上启发式合并+线段树
Description中二少年cenbo幻想自己统治着Euphoric Field。由此他开始了Endless Fantasy。 Euphoric Field有n座城市,m个民族。这些城市之间由n-1条道路连接形成了以城市1为根的有根树。每个城市都是某一民族的聚居地,cenbo知道第i个城市的民族是A_i,人数是B_i。为了维护稳定,cenbo需要知道某个区域内人数最多的民族。他向你提出...原创 2018-08-20 19:54:55 · 378 阅读 · 0 评论 -
jzoj5837 Omeed 线段树+矩阵乘法
Description好长啊 Solution早上睡过头了推出一堆假的柿子并不能过样例考虑怎么求c(i)的期望。显然有ci=(ci−1+1)×pi+ci−1×t×(1−pi)ci=(ci−1+1)×pi+ci−1×t×(1−pi)c_i=\left(c_{i-1}+1\right)\times p_i+c_{i-1}\times t\times \left(1-p_i\r...原创 2018-08-21 16:54:10 · 394 阅读 · 0 评论 -
jzoj5849 d 线段树
DescriptionSolution考虑按a升序排序。可以发现答案为min(a)*min(b),那么我们枚举a[i]作为最小的a,查询第m-i+1小的b更新答案 注意每次要删掉最小的a,即一个矩形不能被删多于一次Code#include <stdio.h>#include <string.h>#include <algo...原创 2018-08-25 15:16:49 · 228 阅读 · 0 评论 -
bzoj2962 序列操作 线段树+组合数学
Description有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反数,3.Q a b c表示询问[a,b]这一段区间中选择c个数相乘的所有方案的和mod 19940417的值。 100%的数据n<=50000,q<=50000,初始序列的元素的绝对值<=109,I a ...原创 2018-10-09 16:36:43 · 166 阅读 · 0 评论 -
bzoj4817 [Sdoi2017]树点涂色 LCT+线段树
DescriptionBob有一棵n个点的有根树,其中1号点是根节点。Bob在每个点上涂了颜色,并且每个点上的颜色不同。定义一条路径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色。Bob可能会进行这几种操作:1 x:把点x到根节点的路径上所有的点染上一种没有用过的新颜色。2 x y:求x到y的路径的权值。3 x在以x为根的子树中选择一个点,使得这个点到根节点的路径...原创 2018-11-29 21:32:47 · 171 阅读 · 0 评论 -
bzoj4364 [IOI2014]wall砖墙 线段树
Description给定一个长度为n的序列,要求资瓷把l到r的数字与v取max把l到r的数字与v取min输出最后结果对于100%的数据,1≤n≤2,000,000,1≤k≤500,000。Solution一开始想找一道最假女选手这样的题写一写的。。我们可以直接上线段树beats!维护最大值、次大值、最小值、次小值,就是不太好写实际上我们可以开两棵线段树分别维护区间的上界...原创 2019-03-17 14:39:23 · 209 阅读 · 0 评论 -
bzoj4355 Play with sequence 线段树区间最值操作
Description维护一个长度为N的序列a,现在有三种操作:1)给出参数U,V,C,将a[U],a[U+1],…,a[V-1],a[V]都赋值为C。2)给出参数U,V,C,对于区间[U,V]里的每个数i,将a[i]赋值为max(a[i]+C,0)。3)给出参数U,V,输出a[U],a[U+1],…,a[V-1],a[V]里值为0的数字个数。第一行包含两个正整数N,M(1<=N...原创 2019-03-21 15:56:11 · 176 阅读 · 0 评论 -
bzoj3064 Tyvj 1518 CPU监控 线段树历史最值
Description维护一个长度为n的序列,资瓷:区间加区间覆盖询问[L,R]内最大值询问[L,R]内历史最大值Solution前三个都好说对于第四个,我们重新定义一个操作v+(a,b)=max(v+a,b),这样操作1就是v+(x,-INF),操作2就是v+(-INF,x)考虑两个标记的合并,那么就是v+(a,b)+(c,d)=max(max(v+a,b)+c,d)=...原创 2019-03-23 16:25:36 · 160 阅读 · 0 评论 -
loj #6145 「2017 山东三轮集训 Day7」Easy 动态点分治+线段树
Description给定一棵n个节点的树和m次形如(l,r,x)询问,意义为:编号为l至r的点中到编号为x的点的距离的最小值n,m≤105n,m\le10^5n,m≤105Solution考虑动态点分治,查询的时候在点分树上爬然后线段树查就可以了这样做是对的是因为我们只会把答案算大而不会算小,那么最小值就一定会被恰好统计到loj挂了全是system error,裙里面好像也没人在...原创 2019-03-31 18:45:35 · 321 阅读 · 0 评论 -
AtCoder Regular Contest 076F Exhausted? Hall定理+线段树
Description有n个人要坐凳子,总共m个凳子。每个人有要求必须坐编号<=L[i]或>=R[i]的凳子,问最少加多少凳子能让所有人有地方坐。。n,m≤2∗105n,m\le2*10^5n,m≤2∗105Solution考虑贪心怎么写。我们按照L从小到大把人扔到当前可坐的最小位置上,实在坐不了就从已经坐好了的人里面换一个R最小出来。感觉这个做法要直观一点啊霍尔定理:若...原创 2019-04-03 16:04:05 · 210 阅读 · 0 评论 -
AtCoder Regular Contest 073F Many Moves 线段树优化dp
Description有一排n个格子,一开始两个棋子在a和b。一个长度为m的操作序列要求第i次要将一个棋子移动到第x[i]个格子。一次移动代价为两格子之间距离,最小化代价之和n≤2e5n\le2e5n≤2e5Solution非常套路的dp,设f[i,j]表示一个棋子在x[i],另一个在j的最小答案,保证j<x[i]。转移的话我们往后推看是哪个棋子移动到了x[i+1]就好了,这样...原创 2019-04-10 09:19:37 · 213 阅读 · 0 评论 -
jzoj6133 [NOI2019模拟2019.4.18]商店 线段树模拟费用流
DescriptionN,M≤3e6N,M\le3e6N,M≤3e6Solution求dfs序的时候爆栈了QUQ考虑人和商品建点跑费用流,优化一下可能可以跑1e5?观察我们费用流实际上在干什么,就是从一个子树内选出最大的权值然后把它取反。那么我们可以用线段树维护dfs序区间最大值来搞这个东西。由于直接做没法退流因此需要按照dfs序降序贪心考虑到时限只有1s,nlogn要跑3e6,我...原创 2019-04-18 15:34:37 · 302 阅读 · 0 评论 -
loj #3088 「GXOI / GZOI2019」旧词 离线+树链剖分
Descriptionn个节点的树,m次询问(x,y)求∑i=1x(dep[lca(i,y)])k\sum_{i=1}^x{{\left(dep[lca\left(i,y\right)]\right)}^k}i=1∑x(dep[lca(i,y)])k其中k是一个给定的常数Solution观察k=1的时候要怎么做。我们离线按x排序,对于一个节点t把根到t路径上的所有点全部+1。那么y...原创 2019-04-28 17:18:01 · 285 阅读 · 0 评论 -
bzoj5384 有趣的字符串题 回文树+树状数组+离线
Description给一个长度为n的字符串,m次询问(l,r)求l到r内本质不同的回文子串数量Solution老年选手复习回文树。。考虑暴力怎么写。我们离线询问按照r排序,每次在回文树上暴力跳fail统计以r为结尾的新增回文串。注意到每一个回文串影响的左端点是一个区间,那么我们用树状数组区间加就可以了。这样做是O(n^2logn)的有一个小结论就是,所有以r为结尾的回文串的长度一定...原创 2019-04-30 09:14:08 · 795 阅读 · 0 评论 -
jzoj5365 【GDOI2018模拟9.14】通信 线段树合并
Description给定一棵树,求∑i=1n∑j=indis(i,j)+∑k=i+1jdis(k−1,k)(n2)\dfrac{\sum\limits_{i=1}^n\sum\limits_{j=i}^n{dis(i,j)+\sum\limits_{k=i+1}^j{dis(k-1,k)}}}{\binom{n}{2}}(2n)i=1∑nj=i∑ndis(i,j)+k=i+1∑jdi...原创 2019-01-25 21:53:39 · 292 阅读 · 1 评论 -
bzoj3065 带插入区间K小值 替罪羊树套权值线段树
Description从前有n只跳蚤排成一行做早操,每只跳蚤都有自己的一个弹跳力a[i]。跳蚤国王看着这些跳蚤国欣欣向荣的情景,感到非常高兴。这时跳蚤国王决定理性愉悦一下,查询区间k小值。他每次向它的随从伏特提出这样的问题: 从左往右第x个到第y个跳蚤中,a[i]第k小的值是多少。这可难不倒伏特,他在脑袋里使用函数式线段树前缀和的方法水掉了跳蚤国王的询问。这时伏特发现有些跳蚤跳久了弹跳力会...原创 2019-01-05 15:06:04 · 251 阅读 · 1 评论 -
bzoj4372 烁烁的游戏 动态点分治+线段树
Description背景:烁烁很喜欢爬树,这吓坏了树上的皮皮鼠。给定一颗n个节点的树,边权均为1,初始树上没有皮皮鼠。烁烁他每次会跳到一个节点u,把周围与他距离不超过d的节点各吸引出w只皮皮鼠。皮皮鼠会被烁烁吸引,所以会一直待在节点上不动。烁烁很好奇,在当前时刻,节点u有多少个他的好朋友—皮皮鼠。大意:给一颗n个节点的树,边权均为1,初始点权均为0,m次操作:Q x:询问x的点权...原创 2018-11-16 17:20:05 · 208 阅读 · 0 评论 -
bzoj3638/3272 Cf172 k-Maximum Subsequence Sum 线段树模拟费用流
Description给一列数,要求支持操作: 1.修改某个数的值 2.读入l,r,k,询问在[l,r]内选不相交的不超过k个子段,最大的和是多少。N,M<=100000 ,1<=k<=20.l<=l<=r<=n.数值的绝对值不会超过500.可以不选Solution线段树模拟费用流,好像也可以看成是可撤销的贪心考虑怎么做单次询问,一个显然的做法就是...原创 2018-11-21 21:38:57 · 224 阅读 · 0 评论 -
bzoj4631 踩气球 线段树
Description六一儿童节到了, SHUXK 被迫陪着M个熊孩子玩一个无聊的游戏:有N个盒子从左到右排成一排,第i个盒子里装着Ai个气球。SHUXK 要进行Q次操作,每次从某一个盒子里拿出一个没被踩爆的气球,然后熊孩子们就会立刻把它踩爆。这M个熊孩子每个人都指定了一个盒子区间[Li, Ri]。 如果某一个时刻,一个熊孩子发现自己选定的盒子区间[Li, Ri]中的所有气球都已经被踩爆...原创 2018-11-19 19:40:06 · 224 阅读 · 0 评论 -
bzoj2957 楼房重建 线段树
Description小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)...原创 2018-11-22 20:37:17 · 154 阅读 · 0 评论 -
bzoj5334 [Tjoi2018]数学计算 线段树
Description小豆现在有一个数x,初始值为1. 小豆有Q次操作,操作有两种类型:1 m: x = x * m ,输出 x%mod;2 pos: x = x / 第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1 的操作至多会被除一次),输出x%mod一共有t组输入(t ≤ 5)对于每一组输入,第一行是两个数字Q, mod(Q ≤ 100000, mo...原创 2018-11-26 21:08:27 · 359 阅读 · 0 评论