新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战。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公司可以有选择的建立一些中转站(投入成本),为一些用户提供服务并获得收益(获益之和)。那么如何选择最终建立的中转站才能让公司的净获利最大呢?(净获利 = 获益之和 - 投入成本之和)

最大权闭合子图裸。。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int maxv = + ;
  5. const int maxe = + ;
  6.  
  7. int n, m, p[maxv];
  8. int e, h[maxv], to[maxe*], nxt[maxe*], cap[maxe*];
  9. void addEdge(int u, int v, int c) {
  10. nxt[e] = h[u], to[e] = v, cap[e] = c, h[u] = e++;
  11. nxt[e] = h[v], to[e] = u, cap[e] = , h[v] = e++;
  12. }
  13.  
  14. int dis[maxv];
  15. int que[maxv*], f, b, c[maxv];
  16. int s, t;
  17. bool bfs() {
  18. que[f = b = ] = s;
  19. memset(dis, 0x3f, sizeof (int)*(t+));
  20. dis[s] = ;
  21. while (f <= b) {
  22. int u = que[f++];
  23. for (int i = h[u]; i != -; i = nxt[i])
  24. if (dis[to[i]] > dis[u]+ && cap[i] > ) {
  25. dis[to[i]] = dis[u]+;
  26. que[++b] = to[i];
  27. }
  28. }
  29. return dis[t] != dis[t+];
  30. }
  31. int dfs(int u, int a) {
  32. if (u == t || a == )
  33. return a;
  34. int f, fl = ;
  35. for (int &i=c[u]; i!=-; i = nxt[i]) {
  36. int v = to[i], p = cap[i];
  37. if (dis[v]==dis[u]+ && (f=dfs(v, min(a, p)))>) {
  38. a -= f;
  39. cap[i] -= f;
  40. cap[i^] += f;
  41. fl += f;
  42. if (a==) break;
  43. }
  44. }
  45. return fl;
  46. }
  47. int MaxFlow() {
  48. int fl = ;
  49. while (bfs()) {
  50. memcpy(c, h, sizeof (int)*(t+));
  51. fl += dfs(s, 0x3f3f3f3f);
  52. }
  53. return fl;
  54. }
  55.  
  56. int main() {
  57. #ifdef love_lhy
  58. freopen("1497.in", "r", stdin);
  59. freopen("1497.out", "w", stdout);
  60. #endif
  61. scanf("%d%d", &n, &m);
  62. int sum = , a, b, c;
  63. e = ;
  64. memset(h, -, sizeof h);
  65. s = , t = n+m+;
  66. for (int i = ; i <= n; ++i) {
  67. scanf("%d", &p[i]);
  68. addEdge(m+i, t, p[i]);
  69. }
  70. for (int i = ; i <= m; ++i) {
  71. scanf("%d%d%d", &a, &b, &c);
  72. sum += c;
  73. addEdge(s, i, c);
  74. addEdge(i, m+a, 0x3f3f3f3f);
  75. addEdge(i, m+b, 0x3f3f3f3f);
  76. }
  77. printf("%d\n", sum-MaxFlow());
  78. return ;
  79. }

1497: [NOI2006]最大获利的更多相关文章

  1. BZOJ 1497: [NOI2006]最大获利 最小割

    1497: [NOI2006]最大获利 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1497 Description 新的技术正冲击着手 ...

  2. BZOJ 1497: [NOI2006]最大获利( 最大流 )

    下午到周六早上是期末考试...但是我还是坚守在机房....要挂的节奏啊.... 这道题就是网络流 , 建图后就最大流跑啊跑啊跑... --------------------------------- ...

  3. BZOJ 1497: [NOI2006]最大获利(最大权闭合子图)

    1497: [NOI2006]最大获利 Time Limit: 5 Sec  Memory Limit: 64 MB Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机 ...

  4. 1497: [NOI2006]最大获利(最大权闭合子图)

    1497: [NOI2006]最大获利 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 5503  Solved: 2673 Description 新的技 ...

  5. BZOJ 1497: [NOI2006]最大获利

    1497: [NOI2006]最大获利 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 4572  Solved: 2239[Submit][Status] ...

  6. 最大权闭合图 && 【BZOJ】1497: [NOI2006]最大获利

    http://www.lydsy.com/JudgeOnline/problem.php?id=1497 最大权闭合图详细请看胡伯涛论文<最小割模型在信息学竞赛中的应用>,我在这里截图它的 ...

  7. 1497: [NOI2006]最大获利 - BZOJ

    Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一 ...

  8. BZOJ 1497 [NOI2006]最大获利 ——网络流

    [题目分析] 最大权闭合子图. S到集合1容量为获利的大小,集合2到T为所需要付出的相反数. 然后求出最大流,然后用总的获利相减即可. [代码] #include <cstdio> #in ...

  9. BZOJ 1497: [NOI2006]最大获利(最大权闭合图)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1497 题意: 思路: 论文题,只要看过论文的话就是小菜一碟啦~ 每个用户群i作为一个结点分别向相应的 ...

随机推荐

  1. 关于 DjangoUeditor 上传图片图片失败,csrf token missing or incorrect 的解决办法

    Forbidden (CSRF token missing or incorrect.): /ueditor/controller/ [27/Jun/2017 23:49:25] "POST ...

  2. MESS-配置

    Author:KillerLegend From:http://www.cnblogs.com/killerlegend/p/3824989.html Date:2014.7.4 Part A 第一部 ...

  3. COGS 1516. 棋盘上的车

    COGS 1516. 棋盘上的车 http://www.cogs.pro/cogs/problem/problem.php?pid=1516 ☆   输入文件:rook.in   输出文件:rook. ...

  4. [洛谷P3158] [CQOI2011]放棋子

    洛谷题目链接:[CQOI2011]放棋子 题目描述 在一个m行n列的棋盘里放一些彩色的棋子,使得每个格子最多放一个棋子,且不同 颜色的棋子不能在同一行或者同一列.有多少祌方法?例如,n=m=3,有两个 ...

  5. ssh 批量执行命令

    # python3.5 + paramiko # pip 是python的包管理工具,在shell里执行如下命令安装paramoko模块 # pip install paramiko # import ...

  6. 图片截取插件Cropper

    自己仿照github上的例子写的demo,github上的例子太抽象了,自己写的最适合自己,通俗易懂. <!DOCTYPE html> <html> <head> ...

  7. sql 恢复数据库

    RESTORE DATABASE RoadFlowWebForm --数据库名称 FROM DISK = 'E:\WEBFORM2.5.1.bak' --bak文件路径 with replace, M ...

  8. 微服务深入浅出(9)-- Nginx

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,处理请求是异步非阻塞的,多个连接(万级别)可以对应一个进程.而Apache是同步多进程模型,一个连接对 ...

  9. JVM性能调优监控工具详解

    现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 .... ...

  10. E - Sudoku HDU - 5547 (搜索+暴力)

    题目链接:https://cn.vjudge.net/problem/HDU-5547 具体思路:对于每一位上,我们可以从1到4挨着去试, 具体判断这一位可不可以的时候,看当前这一位上的行和列有没有冲 ...