BZOJ3511 土地劃分

2022-05-19 20:17:47 字數 939 閱讀 2398

給出n個點,m條邊,每個點有a和b兩種形態,一開始1為a,n為b

給出va[i]和vb[i],表示第i個點選擇a和b形態的價值

每條邊給出x,y,ea,eb,ec,表示如果x和y都為a,則獲得ea價值,如果都為b則獲得eb價值,否則會得到ec的費用(就是負價值)

求出最大價值

神奇的最小割,太強了

建圖膜

#include#include

#include

#include

#include

using

namespace

std;

struct

node

a[2100000];int len,last[110000

];void ins(int x,int y,int

c)int h[110000],list[110000

],st,ed;

bool

bt_h()

}head++;

}if(h[ed]==0) return

false

;

else

return

true;}

int findflow(int x,int

f) }

if(s==0) h[x]=0

;

returns;}

intmain()

ins(n,ed,

999999999

);

for(int i=2;i)

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

while(bt_h()==true) sum-=findflow(st,999999999

); printf(

"%d\n

",sum);

return0;

}

BZOJ3511 土地劃分

一眼最小割 考慮劃為s集代表a國,劃為t集代表b國 建圖 s連每個點流量va,每個點連t流量vb 對於每條邊,兩個端點點之間連雙向邊流量ec 新建乙個點x,s連x流量ea,x連兩個端點流量inf 再新建乙個點y,兩個端點連y流量inf,y連t流量eb 認為1號點va inf,vb 0 n號點va 0...

BZOJ3511 土地劃分 最小割

y國有n座城市,並且有m條雙向公路將這些城市連線起來,並且任意兩個城市至少有一條路徑可以互達。y國的國王去世之後,他的兩個兒子a和b都想成為新的國王,但他們都想讓這個國家更加安定,不會用武力解決問題。於是他們想將這個國家分成兩個小國家a國和b國。現在,a擁有1號城市,b擁有n號城市,其他的城市還尚未...

FZU Problem 1015 土地劃分

在dukeswood這塊土地上生活著乙個富有的農莊主和他的幾個孩子。在他臨終時,他想把他的土地分給他的孩子。他有許多農場,每個農場都是一塊矩形土地。他在農場地圖上劃上一些直線將矩形分成若干塊。當他划直線時,他總是從矩形邊界上的某一點劃到另乙個矩形邊界上的點,這條線的結束點將成為下一條線的起始點。他劃...