一眼最小割
考慮劃為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,vb=inf
#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define maxn 100010
#define maxm 4000010
#define inf 1000000000
#define mod 1000000007
#define eps 1e-8
#define ll long long
struct vec;
vec mp[maxm];
int tai[maxn],cnt=1;
int q[maxn],hd,tl;
int d[maxn];
int s,t;
int ans;
inline void be(int x,int y,int z)
inline void bse(int x,int y,int z)
inline void bde(int x,int y,int z)
int bfs()
} }return d[t];
}int dfs(int x,int mx)
int i,y,re=0,tmp;
for(i=tai[x];i;i=mp[i].fro)
} }if(!re)
return re;
}int n,m,tot;
int main(){
int i,x,y,z;
scanf("%d%d",&n,&m);
s=n+1;
t=s+1;
tot=t;
ans+=inf*2;
bse(s,1,inf);
bse(n,t,inf);
for(i=2;i
BZOJ3511 土地劃分
給出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的費用 就是負價值 求出最大價值 神奇的最小割,太強了 建圖...
BZOJ3511 土地劃分 最小割
y國有n座城市,並且有m條雙向公路將這些城市連線起來,並且任意兩個城市至少有一條路徑可以互達。y國的國王去世之後,他的兩個兒子a和b都想成為新的國王,但他們都想讓這個國家更加安定,不會用武力解決問題。於是他們想將這個國家分成兩個小國家a國和b國。現在,a擁有1號城市,b擁有n號城市,其他的城市還尚未...
FZU Problem 1015 土地劃分
在dukeswood這塊土地上生活著乙個富有的農莊主和他的幾個孩子。在他臨終時,他想把他的土地分給他的孩子。他有許多農場,每個農場都是一塊矩形土地。他在農場地圖上劃上一些直線將矩形分成若干塊。當他划直線時,他總是從矩形邊界上的某一點劃到另乙個矩形邊界上的點,這條線的結束點將成為下一條線的起始點。他劃...