BZOJ 2768 冠軍調查(最小割)

2021-09-07 23:11:56 字數 656 閱讀 6434

題意:給出乙個無向圖,每個點有乙個值0或者1。現在重新設定每個點的值0或者1。設重新設定後的點與原來的點有x個點的值不一樣;重新設定後有y條邊(u,v)使得u和v的值不同。最小化x+y。

思路:若初始值為1則原點向其連邊;否則其向匯點連邊。對於邊(u,v),u和v的值不同,則連邊。求最小割。若左側被割到,則表示將其改為0;右側被割到,則表示將其改為1;中間被割到則表示兩邊衝突。

struct node

;node edges[n];

int head[n],e;

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

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

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

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

if(i!=-1)

else

h[u]=x+1;

num[x+1]++;

if(u!=s) u=pre[u];}}

return ans;

}int s,t,n,m,a[n];

int main()

for1(i,m)

pr(maxflow(s,t,t+1));

}

BZOJ 2768 冠軍調查 最小割

time limit 10 sec memory limit 128 mb submit 971 solved 661 submit status discuss 第一行兩個整數n和m,其中n 2 n 300 表示參與者的總數,m 0 m n n 1 2 表示朋友的總對數。第二行n個整數,要麼是0要...

BZOJ 2768 冠軍調查

link solution 一道比較基礎的最大流的題目 一般看到將點分為兩類的題目就要往網路流方向想吧 建圖 源點向每個初始立場為1的人連權值為1的邊。每個初始立場為0的人向匯點連權值為1的邊。好朋友之間互相連權值為1的邊。最小割即是答案。要滿足要求且總和最小,就不能讓任何一對 1,0 關係成立,這...

bzoj2768 網路流 最小割 冠軍調查

description input 第一行兩個整數n和m,其中n 2 n 300 表示參與者的總數,m 0 m n n 1 2 表示朋友的總對數。第二行n個整數,要麼是0要麼是1。如果第i個整數的值是0的話,表示第i個人心裡認為切爾西將與冠軍無緣,如果是1的話,表示他心裡認為切爾西必將奪魁。下面m行...