獲得一條邊的價值必須選上兩點,這一看就是最大權閉合子圖。
先將所有價值選上。
從\(s\)向每個使用者\(i\)連容量為\(c_i\)的邊,從每個中轉站\(i\)向匯點連容量為\(cost_i\)的邊,對於每個使用者\(i\)從\(i\)向\(a_i\)和\(c_i\)連容量為\(inf\)的邊。
之後跑最小割,用答案減去即可。
code:
#includeusing namespace std;
const int maxn=5010;
const int maxm=50010;
const int inf=1e9;
int n,m,cnt_edge=1,s,t,ans;
int cost[maxn],head[maxn+maxm],cur[maxn+maxm],dep[maxn+maxm];
struct edgee[(maxn+maxm*3)<<1];
inline int read()
while(c>='0'&&c<='9')res=res*10+c-'0',c=getchar();
return res*f;
}inline void add(int u,int v,int w)
inline void addflow(int u,int v,int w)
inline bool bfs()
}return dep[t]>0;
}int dfs(int x,int lim)
return lim-res;
}inline int dinic()
int main()
printf("%d",ans-dinic());
return 0;
}
P4174 NOI2006 最大獲利
洛谷傳送門 題意 有n個中轉站建造方案,每個中轉站有乙個建造的費用,有m個使用者群,每個使用者群能帶來一定的收益,但是每個使用者群都會指定兩個中轉站必須建造,問最大可能收益 思路 最大權閉合圖 定義 在有向圖中,每個點有乙個權值,取乙個點集,使得沒有乙個點有向外指的邊,這樣的權值最大的點集。可以發現...
P4174 NOI2006 最大獲利
最小割看很多人都是用最大權閉合子圖來做的,其實就是對於每個使用者 節點都建立點,然後使用者是正權 獲得收益 通訊節點是負權 需要成本 然後使用者向所需要的節點連邊,表示如果想得到這個正權,就必須把所需的負權節點也選上 也就是所選子圖必須閉合 所以就用常規的做法,建模成網路流,s 向所有節點連流量為成...
洛谷P4174 NOI2006 最大獲利
新的技術正衝擊著手機通訊市場,對於各大運營商來說,這既是機遇,更是挑戰。thu 集團旗下的 cs t 通訊公司在新一代通訊技術血戰的前夜,需要做太多的準備工作,僅就站址選擇一項,就需要完成前期市場研究 站址勘測 最優化等專案。在前期市場調查和站址勘測之後,公司得到了一共 n 個可以作為通訊訊號中轉站...