线段树优化建图 在有些数据范围内是不允许我们把图上的所有边建出来的 然后我们对编号为下标建线段树 线段树上的每个节点的 \(l\) 和 \(r\) 就是把 \(l\rightarrow r\) 中的所有点缩到一个点表示了 然后这里我们完善一下: 把每个点拆一下,成一个入点,一个出点,分别 ...
一 引入 先来看一道题:CF B Legacy。 题目大意:有 n 个点 q 次操作。每一种操作为以下三种类型中的一种: 操作一:连一条 u to v 的有向边,权值为 w 。 操作二:对于所有 i in l,r 连一条 u to i 的有向边,权值为 w 。 操作三:对于所有 i in l,r 连一条 i to u 的有向边,权值为 w 。 求从点 s 到其他点的最短路。 leq n,q leq ...
2020-10-03 15:37 2 484 推荐指数:
线段树优化建图 在有些数据范围内是不允许我们把图上的所有边建出来的 然后我们对编号为下标建线段树 线段树上的每个节点的 \(l\) 和 \(r\) 就是把 \(l\rightarrow r\) 中的所有点缩到一个点表示了 然后这里我们完善一下: 把每个点拆一下,成一个入点,一个出点,分别 ...
一个点向一个点连边太easy了。 现实有的时候并没有这么简单。 对于这样的一类问题:需要多次(m=1e5次左右)从一个编号在[L1,R1]的区间内的所有点,向另一个编号在[L2,R2]的所有点之间分别连权值相同的边。 求S到T的最短路,或者其他的信息。 就是一个建图的辅助工具。解题 ...
这一篇讲线段树优化建图。 发现网上关于线段树优化建图的博客很少而且讲的不是很详细,很多人会看得比较懵。 于是原本这一篇打算讲树链剖分的就改成讲优化建图了。 前置知识:动态开点线段树 看到标题你可能会感觉奇怪,线段树和建图有什么关系? 事实上,线段树优化建图就是利用两棵线段树,减少连边数量 ...
朴素(即搜索) O(n)-O(n) 2.线段树(segment tree) O(n)-O(qlogn) ...
题意 给你 \(n\) 个武器,\(m\) 个敌人,问你最多消灭多少个敌人,并输出方案。 总共有三种武器。 SQL 火箭 - 能消灭给你集合中的一个敌人 \(\sum |S| \le 10 ...
前言 写得确实挺烂的,当时码风也不怎么样,不喜勿喷. 线段树 线段树的作用&原理 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logn ...
写在前面 大概是笔记吧 部分内容引用了\(\texttt{OI-Wiki}\)和【AgOHの数据结构】主席树 部分图片出处:【AgOHの数据结构】主席树 感谢 LuckyBlock 同学提供了 例3、例12 和 例15 的链接 如果有题目链接或者文章出现了错误,欢迎指出! 基本区间操作 ...
I. (线段树)CF786B Legacy 太经典了。 看到区间想到线段树,在线段树上连边跑 Dijkstra 即可。 具体来说,建两棵树,一棵只连入边,另一棵只连出边。入边的树父节点向子节点连边(如果子节点向父节点连边,会导致本来只连向该区间的边通过子节点向父节点连的边连向了更大的区间 ...