題意:給出乙個無向圖,每個點有乙個值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行...