要建\(n\)個站,建第i個站的花費\(p_i\)。
有\(m\)個收益機會,當第\(a_i\)和第\(b_i\)個站都被建立時可以得到收益\(c_i\).
問最大收益為多少。
\(n\le5000,m\le50000,0\le c_i,p_i\le100\)
考慮剛開始你能獲得全部收益,然後要丟掉一些虧錢的。。
考慮網路流求最小割。
對於所有站i,建立\(s \rightarrow i\)的邊權為\(p_i\)的邊.
對於所有機會i,建立\(a_i\rightarrow i+n\),\(b_i \rightarrow i+n\)邊權為inf,以及\(i+n \rightarrow t\),邊權為\(c_i\).
那麼就是最小割了
網路流日常打錯:
1.bfs忘加必須有流量的限制。。
const int n=510,m=250010;
int n,m;
int p[n];
struct peo
}a[m];
namespace flow
inline void con(int x,int y,int c)
int stp[all];
inline bool bfs(int s)
}} return stp[t]!=stp[0];
} int cur[all];
inline int dfs(int u,int f)
}} return 0;
} inline int dinic() while(add);
} return flow;
} inline void construct()
for(int i=1;i<=m;i++)
} inline int main()
}int sum=0;
signed main()
for(int i=1;i<=n;i++) read(p[i]);
int ans=flow::main();
printf("%d\n",sum-ans);
return 0;
}
用時:25min 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 ...