![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树优化建边
lahlah_
沉浸 尊重
展开
-
[luogu P6348] [PA2011]Journeys
[luogu P6348] [PA2011]Journeys 题解 最直接的做法就是直接连边然后跑01最短路 但是边数特别多,所以要线段树优化建边 要注意的一点是双向边必须建两对点来辅助 不能直接只建一对点,不然会出现自己到自己的情况 code: #include<bits/stdc++.h> #define N 8000005 using namespace std; struct edge { int v, nxt, c; } e[N << 1]; int p[N], eid;原创 2020-10-26 07:52:43 · 129 阅读 · 0 评论 -
[luogu P5029] T‘ill It‘s Over(线段树优化建边网络流)
[luogu P5029] T’ill It’s Over 题解 这题思路还是比较清楚,就是直接连边跑最大流就好了 但是主要的问题是边数太多了 这时候可以考虑线段树优化建边 线段树优化建边只是借用了一下线段树的结构罢了 左边表示的是入边(流入的),右边是出边(流出的) 图中每条边的流量都是INF 假设要[1,2]−−−>[3,4][1,2] --->[3,4][1,2]−−−>[3,4] 先新建两个节点fr,to,fr−−c−>tofr, to, fr--^{\large c}-&原创 2020-10-26 07:40:36 · 188 阅读 · 0 评论