BZOJ 2561 最小生成樹(最大流)

2021-09-08 20:36:58 字數 614 閱讀 1824

題意:給定乙個邊帶正權的連通無向圖g= (v,e),其中n=|v|,m=|e|,n個點從1到n依次編號,給定三個正整數u,v,和l (u≠v),假設現在加入一條邊權為l的邊(u,v),那麼需要刪掉最少多少條邊,才能夠使得這條邊既可能出現在最小生成樹上,也可能出現在最大生成樹 上?

思路:考慮克魯斯卡爾演算法的過程。若加入的 邊(u,v,l)能夠出現在最小生成樹中,那麼權值小於l的邊一定不能使得u和v連到乙個連通分量中。因此問題等價於在權值小於l的邊中選出最少的邊使得 u和v不連通。那麼我們將權值小於l的邊建圖,求最小割即可。最大生成樹類似。

struct node

;node edges[n<<2];

int head[n],e;

void add(int u,int v,int cap)

void add(int u,int v,int cap)

int pre[n],cur[n],num[n],h[n];

int maxflow(int s,int t,int n)

if(i!=-1)

else

ans+=maxflow(u,v,n+1);

pr(ans);

}

bzoj 2561 最小生成樹

給定乙個邊帶正權的連通無向圖g v,e 其中n v m e n個點從1到n依次編號,給定三個正整數u,v,和l u v 假設現在加入一條邊權為l的邊 u,v 那麼需要刪掉最少多少條邊,才能夠使得這條邊既可能出現在最小生成樹上,也可能出現在最大生成樹上?第一行包含用空格隔開的兩個整數,分別為n和m 接...

bzoj2561 最小生成樹

time limit 10 sec memory limit 128 mb submit 1024 solved 520 submit status discuss 給定乙個邊帶正權的連通無向圖g v,e 其中n v m e n個點從1到n依次編號,給定三個正整數u,v,和l u v 假設現在加入一...

bzoj 2561 最小生成樹

給定乙個邊帶正權的連通無向圖,現在加入一條邊權為l的邊 u,v 那麼需要刪掉最少多少條邊,才能夠使得這條邊既可能出現在最小生成樹上,也可能出現在最大生成樹上?以前看著一臉懵逼,現在好像就是那樣。容易想到,當u v存在一條路徑,上面不存在 l的邊,那麼新邊一定不在最小生成樹上,所以將所有小於l的邊建出...