随笔分类 -  数据结构——线段树

摘要:题意 给一张DAG图,可以删掉一个点,最小化DAG最长路,多组数据 思路 真让人头秃.jpg 先正反两遍求出$f_i,g_i$表示正向到$i$的最长路和反向到$i$最长路(或者说从$i$出发的最长路) 将点分成S,T两部分,一开始所有的点都在T部分,代表一条长度为$g_i$的路径,将一个点拿出T部分 阅读全文
posted @ 2019-11-07 14:50 擅长平地摔的艾拉酱 阅读(261) 评论(1) 推荐(0)
摘要:题意 将序列$a_i$分成任意$k$部分,要求一部分的$a$值和不超过$m$;最小化( 每段权值的最大值 之和)$,(n\leq 100000)$ 解法1 显然动态规划,设$f_i$表示处理前$i$个数的最小值,$s$为前缀和,状态转移:$f_i=f_j+max(a_{j+1},a_{j+2}... 阅读全文
posted @ 2019-11-06 22:00 擅长平地摔的艾拉酱 阅读(270) 评论(0) 推荐(0)
摘要:题意 给一棵点带权的树,对于每个点,求其子树中有多少个点的权值 大/小/等于它$,(n\leq 200000)$ 解法1 看到数据范围没多想就写了个树上启发式合并,太裸了。。。 维护一棵值域线段树,先跑轻儿子再跑重儿子,删轻儿子不删重儿子,自底向上求解即可,时间复杂度为$O(nlog^2n)$ Co 阅读全文
posted @ 2019-11-06 14:58 擅长平地摔的艾拉酱 阅读(161) 评论(0) 推荐(0)
摘要:"题目" 给一个序列,支持单点修改,每次修改后输出对这个序列做单调递增栈后栈的大小 思路 线段树维护单调栈模板题 先开个线段树,设$query(rt,l,r,x)$表示询问$[l,r]$这段区间中比$x$大的数形成的单调栈大小,$mx[rt]$表示该子树中的最大值 显然有$query(rt,l,r, 阅读全文
posted @ 2019-11-04 17:28 擅长平地摔的艾拉酱 阅读(149) 评论(0) 推荐(0)
摘要:题意 给$n$个互不相交的矩形,再给$m$个询问,每次给一个矩形求它与这$n$个矩形的面积交 思路 自己写的太丑了导致DEBUG了一个半小时qwq 一对矩形的交可以拆分成二维前缀和形式下的矩形的交,于是变成判断16次矩形的交(不想画图...只想口胡) 这些矩形都有$x_0=0,y_0=0$,即左下角 阅读全文
posted @ 2019-11-02 14:50 擅长平地摔的艾拉酱 阅读(183) 评论(0) 推荐(0)
摘要:题意 有一棵树,每个节点$i$有一定的容量$k_i$(只能装$k_i$个颜色);有$m$次操作,每次给$x$到$1$路径上的所有点加上一个颜色$c$;修改操作完成后询问每个节点有多少种不同的颜色$(n,m,k_i \leq 10^5)$ 思路 30pts数据小可以直接暴力跳 另外40pts有$k_i 阅读全文
posted @ 2019-10-30 08:34 擅长平地摔的艾拉酱 阅读(259) 评论(0) 推荐(0)
摘要:题意 给一个数列,支持区间修改和区间求和,区间修改操作给区间第$i$位加上$fib_i$ 思路 如果使用线段树的话,显然区间和可以合并,考虑两个问题: 1. 如何化区间修改为快速的打标记 2. 打标记之后如何快速计算这个标记的贡献 令$f$表示斐波那契数列,定义广义斐波那契数列:$g_i=a\tim 阅读全文
posted @ 2019-10-25 09:31 擅长平地摔的艾拉酱 阅读(220) 评论(0) 推荐(0)
摘要:这道题可以看做是 "[SHOI2008]堵塞的交通" 的加强版,由于~~形同模拟~~不同人的写法差别很大,强烈建议理解了原理之后自己独立写 题意 给一个$2 m$的网格图,每次操作支持修改一条边的权值,和查询$[L,R]$(含)的最小生成树 思路 如果做过上面那道题就很容易知道这道题是考(毒瘤的)线 阅读全文
posted @ 2019-10-09 21:01 擅长平地摔的艾拉酱 阅读(220) 评论(0) 推荐(0)
摘要:题意 有n个格子$(n\leq 1e5)$,初始每个格子的权值为0。支持两个操作:1.每次向$[l,r]$中的所有格子加入一个物品i,对于一个格子,如果是第一次加入i,则权值加1,否则权值翻倍;2.区间求和 物品种类和n同阶 思路 考虑到虽然物品种类很多,但操作区间数量仍然是1e5级别,于是可以用一 阅读全文
posted @ 2019-09-23 19:22 擅长平地摔的艾拉酱 阅读(277) 评论(0) 推荐(0)
摘要:题意 给一颗树,每次操作将一段路径上的点的某一个属性的属性值加一,求所有操作完成后每个点属性值最大的属性 思路 树链剖分+权值线段树($O(nlog^2n)$) 只有一次询问,这个条件很重要 对原树剖分完之后,考虑处理每一个区间,用差分的思想,将$l$对应的属性值加1,$r+1$对应的属性值建1,最 阅读全文
posted @ 2019-09-23 18:01 擅长平地摔的艾拉酱 阅读(188) 评论(0) 推荐(0)
摘要:题意 给一个序列,支持两个操作:将一段区间中的每一个$a_i$赋值为$c^{a_i}$,$c$ 给定;区间求和,对$mod$取模,不保证$mod$为质数 思路 显然 线段树 ,然而此题先要单点修改 计算中指数会非常大,但是本题$mod$又不是质数,于是可以套用欧拉定理的推论: $a^{b}≡a^{b 阅读全文
posted @ 2019-09-20 15:04 擅长平地摔的艾拉酱 阅读(240) 评论(0) 推荐(0)
摘要:题意 有$2 n$个城市排成$2$行$n$列的网格,相邻两个城市间有一条道路,初始时所有道路断开,支持以下操作:断开一条道路、连通一条道路、询问两个城市是否连通 思路 ~~开始还以为很简单,结果是道线段树神仙题~~ 将两行弄到一起,用一颗线段树来维护列 设当前区间为$[l,r]$,$l1$为左上,$ 阅读全文
posted @ 2019-08-30 19:08 擅长平地摔的艾拉酱 阅读(235) 评论(0) 推荐(0)
摘要:例题 "luogu 3919" 特点:在普通线段树支持查询当前状态基础上,支持查询过去的所有版本 一、$\text{基础思路}$: 暴力保存过去版本,每一次修改都会造成$nlogn$的时空复杂度,总复杂度$O$($mnlogn$),直接上天 注意到每一次单点修改只会导致对应的叶子节点以及它的所有祖先 阅读全文
posted @ 2019-02-18 11:10 擅长平地摔的艾拉酱 阅读(275) 评论(0) 推荐(1)

/*取消选中*/