網路流24題之圓桌問題

2022-03-27 06:53:32 字數 961 閱讀 5038

對於每個單位連源點到其的邊,流量為單位人數

每個單位對每個桌子連邊,流量為1

每個桌子對終點連邊,流量為桌子人數

判斷最大匹配是不是為總人數

by:大奕哥

1 #include2

using

namespace

std;

3const

int n=20005;4

inthead[n],d[n],a[n],c[n];

5int n,m,cnt=-1

,s,t,sum;

6struct

nodee[1000005];9

void add(int x,int y,int

w)10

14 queueq;

15bool bfs(int x,int

y)1628}

29return d[y]!=-1;30

}31int dfs(int x,int w,int

yy)32

43 e[i].w-=flow;e[i^1].w+=flow;s+=flow;

44if(s==w)return

s;45}46

return

s;47}48

intdinic()

4955

return

ans;56}

57int

main()

5868

for(int i=1;i<=n;++i)

6973

int ans=dinic();

74if(ans!=sum)

7578 puts("1"

);79

for(int i=1;i<=m;++i)

8086 printf("\n"

);87}88

return0;

89 }

網路流24題 圓桌問題

click me 從原點向每乙個單位連一條流量為單位人數的邊,單位和桌子間連一條流量為1的邊,桌子和匯點之間連一條流量為桌子容量的邊,跑最大流即可。au hany01 date jan 13th,2018 prob luogu3254 email hany01 foxmail.com include...

網路流24題 圓桌問題

二分圖多重匹配問題,可以用最大流解決。建立二分圖,每個單位為x集合中的頂點,每個餐桌為y集合中的頂點,增設附加源s和匯t。1 從s向每個xi頂點連線一條容量為該單位人數的有向邊。2 從每個yi頂點向t連線一條容量為該餐桌容量的有向邊。3 x集合中每個頂點向y集合中每個頂點連線一條容量為1的有向邊。求...

網路流24題 圓桌問題

假設有來自m 個不同單位的代表參加一次國際會議。每個單位的代表數分別為ri i 1,2,m 會議餐廳共有n 張餐桌,每張餐桌可容納ci i 1,2,n 個代表就餐。為了使代表們充分交流,希望從同乙個單位來的代表不在同乙個餐桌就餐。試設計乙個演算法,給出滿足要求的代表就餐方案。對於給定的代表數和餐桌數...