bzoj 2561 最小生成樹

2021-08-09 10:28:54 字數 709 閱讀 6723

給定乙個邊帶正權的連通無向圖,現在加入一條邊權為l的邊(u,v),那麼需要刪掉最少多少條邊,才能夠使得這條邊既可能出現在最小生成樹上,也可能出現在最大生成樹上?

以前看著一臉懵逼,現在好像就是那樣。

容易想到,當u->v存在一條路徑,上面不存在》=l的邊,那麼新邊一定不在最小生成樹上,所以將所有小於l的邊建出來,做最小割就可以了。

最大生成樹上同樣,最後答案加起來。

code:

#include

#include

#include

#include

using namespace std;

const int inf=(1

<<28);

struct nodea[2110000],e[210000];int

last[20010],len=0;

int h[20010],s[20010],st,ed,n,m;

void ins(int

x,int

y,int c)

bool bt_h()

l++;

}return h[ed]!=0;

}int findflow(int

x,int f)

}if(ans==0) h[x]=0;

return ans;

}int main()

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 假設現在加入一...

BZOJ2561 最小生成樹

傳送門 題解 暫時不想寫題qwq 顯然,加入這條邊後,權值比它大的邊和比它小的邊都不能讓這兩個點連通。求最小割即可。蒟蒻只會isap。好久沒打isap的板子了 又及這範圍還真的過得去。include include include define maxn 20005 define maxm 4000...