題目大意:n個小朋友投票,定義投票的沖突數為好友間發生沖突數加上所有和自己意愿發生沖突的人數,求沖突最少數
分析:增加源匯點,s向所有同意的連容1的邊,所有反對的向t連容1的邊,若倆人是好友,則相互連容1邊
對于經過好友間的流量,表示著沖突,即可用沖突或改變意愿來替代,那么最小割就成了沖突數的定義
看到網上的幾個代碼都進行了拆點,我覺得似乎沒有必要,直接構圖,AC.看來感覺是對的,但我有些疑惑的是為什么要把正反兩條邊都建起來,后來想了一下,其實最小割模型中有個偏序的關系,模型的一側是包含s的一組結點,右側是包含t的一組結點,而SET(S)到SET(T)應該是相連的,而如果建成單相邊的話,有可能導致S,T之間沒有路徑存在。而最小割中恰好又只取S->T的邊,所以無論關系是怎樣的,都可以滿足要求,取兩個朋友之間的一條邊,此題得解。