树链剖分
兔兔不会梦到ACM学长
这个作者很懒,什么都没留下…
展开
-
树链剖分模板
树链剖分 #include<cstdio> #include<algorithm> using namespace std; const int M=40005; int n,m; struct edge{ int to,nxt,cost; }G[M<<1]; int head[M],asdf; void add_edge(int a,int b,int c){ G[++asdf].to=b; G[asdf].nxt=head[a]; G[asdf].cost=c原创 2020-12-07 20:11:07 · 140 阅读 · 0 评论 -
HNOI 2016 网络
网络 特点 利用树剖+线段树+可删除堆(双堆),维护不经过某个点的最大值 具体操作 1.预处理树剖。 2.线段树每个节点一个可删除堆(两个堆)。 3.对于加边操作,树剖跳出了一个个线段,都存下来,此时这些线段表示的是这条链,那么除去这些线段表示的就是其他点。更新除这些线段以为的线段即可。 具体代码 #include<bits/stdc++.h> usin...原创 2018-08-21 10:47:15 · 181 阅读 · 0 评论