NOI 06 最大獲利

2021-06-08 16:32:36 字數 2197 閱讀 7337

新的技術正衝擊著手機通訊市場,對於各大運營商來說,這既是機遇,更是挑戰。thu 集團旗下的cs&t 通訊公司在新一代通訊技術血戰的前夜,需要做太多的準備工作,僅就站址選擇一項,就需要完成前期市場研究、站址勘測、最優化等專案。

在前期市場調查和站址勘測之後,公司得到了一共n 個可以作為通訊訊號中轉站的位址,而由於這些位址的地理位置差異,在不同的地方建造通訊中轉站需要投入的成本也是不一樣的,所幸在前期調查之後這些都是已知資料:建立第i個通訊中轉站需要的成本為pi(1≤i≤n)。

另外公司調查得出了所有期望中的使用者群,一共m 個。關於第i 個使用者群的資訊概括為ai, bi 和ci:這些使用者會使用中轉站ai 和中轉站bi 進行通訊,公司可以獲益ci。(1≤i≤m, 1≤ai, bi≤n)

thu 集團的cs&t 公司可以有選擇的建立一些中轉站(投入成本),為一些使用者提供服務並獲得收益(獲益之和)。那麼如何選擇最終建立的中轉站才能讓公司的淨獲利最大呢?(淨獲利 = 獲益之和 – 投入成本之和)

【資料規模】80%的資料中:n≤200,m≤1 000。

100%的資料中:n≤5 000,m≤50 000,0≤ci≤100,0≤pi≤100。

【時限】2s

輸入檔案中第一行有兩個正整數n 和m 。

第二行中有n 個整數描述每乙個通訊中轉站的建立成本,依次為p1, p2, …,

pn 。

以下m 行,第(i + 2)行的三個數ai, bi 和ci 描述第i 個使用者群的資訊。

所有變數的含義可以參見題目描述。

你的程式只要向輸出檔案輸出乙個整數,表示公司可以得到的最大淨獲利。

5 51 2 3 4 5

1 2 3

2 3 4

1 3 3

1 4 2

4 5 3

4

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using std::priority_queue;

using std::vector;

using std::swap;

using std::stack;

using std::sort;

using std::max;

using std::min;

using std::pair;

using std::map;

using std::string;

using std::cin;

using std::cout;

using std::set;

using std::queue;

using std::string;

using std::istringstream;

using std::getline;

const int maxn(55010);

const int maxe(maxn+(50010 << 1));

const int infi((int_max-1) >> 1);

int first[maxn];

int v[maxe << 1], lf[maxe << 1], next[maxe << 1];

int rear;

int n;

int s, t;

void init()

void insert(int tu, int tv, int tc)

int level[maxn];

bool bfs()

}} return level[t] != -1;

}int dfs(int cur, int limit)

} if(tf == 0)

level[cur] = -1;

return tf;

}int dinic()

return ret;

}int main()

int limit = n-2;

int a, b, c;

int ans = 0;

for(int i = n+1; i <= limit; ++i)

ans -= dinic();

printf("%d\n", ans);

} return 0;

}

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 ...