終於搞明白了……
x到y有邊意味著選x必須選y,所以才會有閉合子圖中乙個點的後繼一定也在這個閉合子圖中。
接下來按照s連正權,負權連t就ok了
1type node=record
2go,next,c:longint;
3end;4
vari,n,m,s,t,max,tmp,ans,tot,x,y,z:longint;
5 h,first,q,cur:array[0..100000] of
longint;
6 e:array[0..500000] of
node;
7function
min(x,y:longint):longint;
8begin
9if xthen exit(x) else
exit(y);
10end;11
procedure
insert(x,y,z:longint);
12begin
13inc(tot);
14 e[tot].go:=y;
15 e[tot].c:=z;
16 e[tot].next:=first[x];
17 first[x]:=tot;
18inc(tot);
19 e[tot].go:=x;
20 e[tot].c:=0
;21 e[tot].next:=first[y];
22 first[y]:=tot;
23end;24
procedure
init;
25begin
26readln(n,m);
27 s:=0;t:=m+n+1;tot:=1;28
for i:=1
to n do
29begin
30read(x);
31insert(s,i,x);
32end
;33 max:=0;34
for i:=1
to m do
35begin
36readln(x,y,z);inc(max,z);
37 insert(n+i,t,z);
38 insert(x,n+i,maxlongint>>2
);39 insert(y,n+i,maxlongint>>2
);40
end;
41end;42
function
bfs:boolean;
43var
i,x,y,head,tail:longint;
44begin
45 fillchar(h,sizeof(h),0
);46 head:=0;tail:=1;q[1]:=s;h[s]:=1;47
while headdo
48begin
49inc(head);
50 x:=q[head];
51 i:=first[x];
52while i<>0
do53
begin
54 y:=e[i].go;
55if (h[y]=0) and (e[i].c<>0) then
56begin
57 h[y]:=h[x]+1;58
inc(tail);
59 q[tail]:=y;
60end
;61 i:=e[i].next;
62end;63
end;
64 exit(h[t]<>0
);65
end;
66function
dfs(x,f:longint):longint;
67var
i,tmp,used:longint;
68begin
69if (x=t) or (f=0) then
exit(f);
70 tmp:=0;used:=0
;71 i:=cur[x];
72while i<>0
do73
begin
74 y:=e[i].go;
75if (e[i].c<>0) and (h[y]=h[x]+1) then
76begin
77 tmp:=dfs(y,min(e[i].c,f-used));
78dec(e[i].c,tmp);
79 inc(e[i xor 1
].c,tmp);
80if e[i].c<>0
then cur[x]:=i;
81inc(used,tmp);
82if used=f then
exit(f);
83end
;84 i:=e[i].next;
85end;86
if used=0
then h[x]:=-1;87
exit(used);
88end;89
procedure
dinic;
90begin
91 ans:=0;92
while bfs do
93begin
94for i:=0
to t do cur[i]:=first[i];
95 inc(ans,dfs(0,maxlongint>>2
));96
end;
97end;98
procedure
main;
99begin
100dinic;
101 writeln(max-ans);
102end
;103
begin
104init;
105main;
106end.
NOI2006 最大獲利
description 新的技術正衝擊著手機通訊市場,對於各大運營商來說,這既是機遇,更是挑戰。thu集團旗下的cs t通訊公司在新一代通訊技術血戰的前夜,需要做太多的準備工作,僅就站址選擇一項,就需要完成前期市場研究 站址勘測 最優化等專案。在前期市場調查和站址勘測之後,公司得到了一共n個可以作為...
NOI2006 最大獲利
有n個中轉站,每乙個中轉站修建需要耗費一定費用。有m個使用者人群,每個使用者人群要通話需要有a b 兩個中轉站,滿足這個使用者人群後會獲利p。問最大獲利是多少?有正權,有負權,還有依賴關係,決定就是你啦,最大權值閉合子圖!建模就不分析了,套路題目。luogu 4174 bzoj 1497 cogs ...
NOI2006 最大獲利
把使用者和中轉站分成兩類,就是乙個二分圖了。注意到我們選擇了乙個使用者群,就必須要選擇對應的中轉站來付出代價。這不就是乙個最大權閉合子圖嘛 直接上最小割即可 如下 include include include include include include define s 0 define t ...