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