摘要: 白书二代上提到了无源无汇有容量下界网络可行流和有容量下界网络的s-t最大/最小流问题。但是由于本人智商捉鸡,觉得LRJ大神写的似乎不是很好理解,所以只能找一些题目来帮助自己理解理解了。这里直说方法,证明。。。不会。1.无源无汇有容量下界可行流这个问题的解法在周源的那个论文里讲的很清楚了。对于每条边,都有一个容量下界b和一个容量上界c,那么这条边实际的可行流量只有c-b,剩下的b必须满流。对每个点i,求a = sum(流向它的下界流)-sum(从它流出的下界流量)若a>0,从源点0连一条到i的容量为a的边若a 2 #include 3 #include 4 #include 5 #... 阅读全文
posted @ 2013-08-06 20:15 浙西贫农 阅读(428) 评论(0) 推荐(1) 编辑
摘要: 给这题跪了。先是各种暴栈,然后又是各种WA,看来还是对题目的理解有点问题。题意:给出一张无向图,然后让你在图中加一条边,使得图中剩下的桥最少。思路:求边双连通分量,缩点后形成一棵树。然后求树的最长的两条链(这两条链不能交叉,应该说同根吧)。鄙人跪就跪在重边这里了。如果节点1-2之间有一条重边,则1和2属于同一边双连通分量。。 1 #pragma comment(linker, "/STACK:10240000000,10240000000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 #includ.. 阅读全文
posted @ 2013-08-06 19:38 浙西贫农 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一张n个点m条边的无向图,然后又q组查询,询问从s节点走到m节点至少要经过多少条桥思路:先dfs找桥,并给所有边-双连通分量蓝色。根据找到的桥以及桥的两端的节点的颜色,重新建图(每个节点代表一个双连通分量,其实就是形成一棵树),dfs一遍求各个点的深度,然后就是离线的求LCA,距离就是dis[u]+dis[v]-2*dis[LCA(u,v)] 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define maxn 100010 7 using namespace std; 8 9 int... 阅读全文
posted @ 2013-08-06 08:53 浙西贫农 阅读(297) 评论(0) 推荐(0) 编辑