题目:

  两个公司进行投标,竞争一些channels,每个投标可以包含多个channels,且都有一定的收益,每一个channels只能为其中的一个公司利用,同时保证一个公司给出的投标中选中的channels不会冲突,求出两公司收益总和的最大值。最多有300000个channels,每个投标最多包含32个channels,每个公司最多有3000个投标。

分析:

  将每一个投标当成一个结点,A公司的与源点连接,流量为其价值,B公司的与汇点连接,流量亦为其价值,对于A、B公司的投标中有冲突的连一条边,流量为正无穷。最后求出这张图的最小割(即为最大流),表示解决冲突要的最小费用(即被浪费的价值最小),用总价值减去最大流即可。

代码:

#include <iostream>
#include <cstdio>
#include <cstring> #include <algorithm> #include <vector> #include <map> #include <queue> #include <cstdlib> #include <string> using namespace std; #define INF 0x3f3f3f3f const int maxn=1e4; int d[maxn]; int C[maxn][40]; int lenc[maxn]; string ch; bool use[300050]; struct Edge { int from,to,cap,flow; }; bool cmp(const Edge& a,const Edge& b) { return a.from < b.from || (a.from == b.from && a.to < b.to); } struct Dinic { int n,m,s,t; vector<Edge>edges; vector<int>G[maxn]; bool vis[maxn]; int d[maxn]; int cur[maxn]; void init(int n) { this->n=n; for(int i=0;i<=n;i++) G[i].clear(); edges.clear(); } void AddEdge(int from,int to,int cap) { edges.push_back((Edge){from,to,cap,0}); edges.push_back((Edge){to,from,0,0}); m=edges.size(); G[from].push_back(m-2); G[to].push_back(m-1); } bool BFS() { memset(vis,0,sizeof(vis)); queue<int> Q; Q.push(s); d[s]=0; vis[s]=1; while(!Q.empty()) { int x=Q.front(); Q.pop(); for(int i=0;i<G[x].size();i++) { Edge& e=edges[G[x][i]]; 

转载于:https://www.cnblogs.com/137033036-wjl/p/5763727.html

UVA 1212 Duopoly相关推荐

  1. [搜索]UVa 129 困难的串

    题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...

  2. uva 401.Palindromes

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  3. Uva 3767 Dynamic len(set(a[L:R])) 树套树

    Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...

  4. UVA 11752 超级幂

    UVA 11752 超级幂 Z - The Super Powers Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & ...

  5. UVa 11174 - Stand in a Line

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  6. UVa 10112 - Myacm Triangles

    UVa第一卷最后一题. 求内部不含点并且面积最大的三角形. 暴力. 代码如下: 1 #include<iostream> 2 #include<cstdio> 3 #inclu ...

  7. UVa 10180 - Rope Crisis in Ropeland!

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=41&pa ...

  8. Uva 10074【递推dp】

    UVa 10074 题意:求01矩阵的最大子0矩阵. http://www.csie.ntnu.edu.tw/~u91029/MaximumSubarray.html#2 这里说的很清楚.先求Larg ...

  9. UVA 116 Unidirectional TSP DP

    题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&p ...

  10. UVa 167(八皇后)、POJ2258 The Settlers of Catan——记两个简单回溯搜索

    UVa 167 题意:八行八列的棋盘每行每列都要有一个皇后,每个对角线上最多放一个皇后,让你放八个,使摆放位置上的数字加起来最大. 参考:https://blog.csdn.net/xiaoxiede ...

最新文章

  1. 【AI学习篇】实战深度学习(3):深度学习的数据表示
  2. 应用程序连接Oracle rac的URL写法
  3. Java中的访问限制符
  4. java spring bean配置文件_Spring基于xml文件配置Bean过程详解
  5. 如何使用jQuery将事件附加到动态HTML元素? [重复]
  6. Netty框架多人聊天案例,代码示例
  7. 十年 IT 老兵告诉你如何快速构建可直接落地、基于开源的低成本架构!
  8. 修改火狐扩展之自定义hackbar
  9. UG与PM数控编程的区别在哪
  10. ShuffleNet网络学习笔记
  11. openGL 例子:创建一个二十面体
  12. 奈奎斯特定理与香农定理
  13. PE文件格式”1.9版 完整译文(附注释)
  14. linux黑客大曝光 pdf,UPPH、UPH
  15. js逆向破解 —— 懂车帝视频链接
  16. 利用Django框架简单设计一个登陆页面
  17. Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.
  18. Java Web编程
  19. 弹幕视频网站的盈利模式 ——以哔哩哔哩弹幕网为例
  20. 杭电2030java做法_杭电ACM2019java做法

热门文章

  1. 河南巴旦木生态农业:巴旦木与杏仁有哪些不同,如何分辨巴旦木仁与杏仁?
  2. QT学习笔记(四)——常用ui控件以及自定义ui控件的使用
  3. restful风格的接口设计
  4. java系统过载保护_过载保护之常见过载处理
  5. 打造千万级流量秒杀 过载保护:如何通过熔断和限流解决流量过载问题?
  6. cocos creator性能优化合集
  7. 苹果雪豹操作系统正式版_苹果发布WatchOS 6.1.2第三个测试版本,修复Bug、提升设备稳定性...
  8. 【案例分析】PCB行业产业服务平台开发案例分析
  9. 国内外游戏运营模式区别
  10. 程序员通过什么渠道接外包项目