hdu 3879 最大获利问题
来源:互联网 发布:长沙网络推广wyztg 编辑:程序博客网 时间:2024/06/05 23:40
一个图 给n个点m条边(u,v,w),每个点和边有相应的权值,若花费了2点的权值就可以得到2点间的边的权值,问可能得到的最大获利。
sum = sigma(wi)
建 立 一 个 二 部 图 ,左 边 是 边 , 右边 是 节点, , 源 流 向 所 有 的 边 , 边 权 为 收益 ;
原 图 中 每 条 边 的 两 个 基 站 所 对 应 的 结 点 流 向 这 条 边 所 对 应 的 结 点 , 边 权 为 无 穷 ; 所 有 边 对 应
的 结 点 流 向 汇 , 边 权 为 这 条 边 的 收 益 。
在 找 其 最 小 割 的 时 候 , 对 于 每 条 边 , 要 么 割 掉 z 要 么 割 掉 x + y , 最 大 流 会 帮 我 们 找 到 最
小 的 割 法 。
切割就使得2点不连通。
int main(){ int i , j , n , m , sum , u , v , w ; while(cin>>n>>m){ init() ; sourse = n + m + 1 ; meet = n + m + 2 ; for(i = 1 ; i <= n ; i++){ scanf("%d" , &w) ; add(i , meet , w) ; } sum = 0 ; for(i = 1 ; i <= m ; i++){ scanf("%d%d%d" , &u , &v , &w) ; add(sourse , i+n , w) ; add(i+n , u , inf) ; add(i+n , v , inf) ; sum += w ; } printf("%d\n" , sum - maxflow()) ; } return 0 ;}
0 0
- hdu 3879 最大获利问题
- HDU 3879 Base Station(最小割的最大权闭包 最大获利)经典
- hdu 3917(最大权闭包)最大获利
- hdu3879 网络流(经典最大获利问题)
- HOJ 2634 网络流 【蕴含式最大获利问题】
- 【网络流】最大获利
- FZU 2079 最大获利
- NOI 06 最大获利
- 【NOI2006】最大获利
- BZOJ1497 NOI2006最大获利
- [BZOJ1497][NOI2006]最大获利
- bzoj1497[NOI2006]最大获利
- bzoj1497【NOI2006】最大获利
- 【bzoj1497】NOI2006最大获利
- [NOI 2006]最大获利
- 【NOI2006】BZOJ1497最大获利
- Vijos P1352 最大获利
- 1497: [NOI2006]最大获利
- Leetcode:Sort List 对单链表归并排序
- Maven核心概念
- 每日算法之三十九:Pow(x, n)
- Oracle表的创建与管理
- 笑话
- hdu 3879 最大获利问题
- UVA 11090 - Going in Cycle!!
- java之string学习
- 【学习总结】数学-欧拉函数
- UINavigationController
- c++中引用(&)的用法
- 层叠样式表的使用
- JSON中的JSONObject
- sql server 数据库连接方式分析、详解