CQOI 2016 不同的最小割

2022-08-13 22:36:09 字數 974 閱讀 5587

題目大意:乙個無向圖,求所有點對不同的最小割種類數

最小割最多有n-1個,這n-1個最小割構成乙個最小割樹

分治法尋找n-1個最小割。對於當前點集x,任選兩點為st做最小割,然後找出與s相連的所有點和與t相連的所有點構成s集與t集,更新s集與t集的最小割。然後遞迴處理兩個集合。

最後將最小割排序,找出有多少不同最小割即可

#include#define inf 0x7ffffff

using

namespace

std;

inline

intread()

struct

edgeg[

20010

];int tot=1,h[1000

],s,t;

void add(int x,int y,int

z)int vis[1000],mark[1000

];int a[1000

];int

n,m;

sets;

bool

bfs()

}return

vis[t];

}int dfs(int u,int

w) }

if(!flow)vis[u]=0

;

return

flow;

}int

dinic()

void dfs(int

x)void

clear()

int tmp[1000

];void solve(int l,int

r)int

main()

for(int i=1;i<=n;++i)a[i]=i;

solve(

1,n);

printf(

"%d\n

",s.size());

return0;

}

view code

CQOI2016 不同的最小割

前置芝士 最小割樹 對於一張帶權無向聯通圖 g v,e g v,e g v,e 來說,我們定義 f u v f u,v f u,v 表示 u,v u,v u,v 之間的最小割的大小。可以證明存在一顆 v v v 個節點的樹,令 g u v g u,v g u,v 表示樹上 u v u v u v 路...

4519 Cqoi2016 不同的最小割

time limit 20 sec memory limit 512 mb submit 524 solved 325 submit status discuss 學過圖論的同學都知道最小割的概念 對於乙個圖,某個對圖中結點的劃分將圖中所有結點分成 兩個部分,如果結點s,t不在同乙個部分中,則稱這個...

CQOI 2016 偽光滑數

又是一道神仙題。蒟蒻表示不看題解根本不會做 首先我們定義乙個 dp 陣列 mathtt 表示 最大質因子為 mathtt 分解成 j 個質數 可以相同 組成的集合 其中 mathtt 是這個集合的根節點,在這裡我們用左偏樹 我們知道,只要得到了這個 dp,我們就可以把這個玩意兒的權值塞進佇列排序,再...