[Bzoj2039][2009国家集训队]employ人员雇佣(最小割)
2039: [2009国家集训队]employ人员雇佣
Time Limit: 20 Sec Memory Limit: 259 MB
Submit: 1988 Solved: 951
[Submit][Status][Discuss]
Description
作为一个富有经营头脑的富翁,小L决定从本国最优秀的经理中雇佣一些来经营自己的公司。这些经理相互之间合作有一个贡献指数,(我们用Ei,j表示i经理对j经理的了解程度),即当经理i和经理j同时被雇佣时,经理i会对经理j做出贡献,使得所赚得的利润增加Ei,j。当然,雇佣每一个经理都需要花费一定的金钱Ai,对于一些经理可能他做出的贡献不值得他的花费,那么作为一个聪明的人,小L当然不会雇佣他。 然而,那些没有被雇佣的人会被竞争对手所雇佣,这个时候那些人会对你雇佣的经理的工作造成影响,使得所赚得的利润减少Ei,j(注意:这里的Ei,j与上面的Ei,j 是同一个)。 作为一个效率优先的人,小L想雇佣一些人使得净利润最大。你可以帮助小L解决这个问题吗?
Input
第一行有一个整数N<=1000表示经理的个数 第二行有N个整数Ai表示雇佣每个经理需要花费的金钱 接下来的N行中一行包含N个数,表示Ei,j,即经理i对经理j的了解程度。(输入满足Ei,j=Ej,i)
Output
第一行包含一个整数,即所求出的最大值。
Sample Input
3 3 5 100 0 6 1 6 0 2 1 2 0
Sample Output
1
【数据规模和约定】
20%的数据中N<=10
50%的数据中N<=100
100%的数据中 N<=1000, Ei,j<=maxlongint, Ai<=maxlongint
HINT
Source
版权所有者: 林衍凯
分析:
最小割。
i连t 权值为∑e[i][j]
AC代码:
# include <iostream> # include <cstdio> # include <queue> # include <cstring> using namespace std; typedef long long LL; const LL inf = 1e16; const int N = 2e3 + 12; int head[N],dt,s,t,cur[N],dep[N],n;LL bac; struct Edge{int to,nex;LL res; }edge[N * N]; void AddEdge(int u,int v,LL w) {edge[dt] = (Edge){v,head[u],w};head[u] = dt++;edge[dt] = (Edge){u,head[v],0};head[v] = dt++; } queue<int> Q; bool Bfs() {for(int i = s;i <= t;i++)dep[i] = -1;dep[s] = 1;Q.push(s);int u;while(!Q.empty()){u = Q.front();Q.pop();for(int i = head[u];~i;i = edge[i].nex)if(dep[edge[i].to] == -1 && edge[i].res){dep[edge[i].to] = dep[u] + 1;Q.push(edge[i].to);}}return dep[t] != -1; } LL dfs(int u,LL f) {if(u == t || !f)return f;LL flow = 0,D;for(int &i = cur[u];~i;i = edge[i].nex)if(dep[edge[i].to] == dep[u] + 1 && (D = dfs(edge[i].to,min(f,edge[i].res)))){edge[i].res -= D;edge[i ^ 1].res += D;f -= D;flow += D;if(!f)break;}return flow; } LL Dinic() {LL flow = 0;while(Bfs()){for(int i = s;i <= t;i++)cur[i] = head[i];flow += dfs(s,inf);}return flow; } int main() {memset(head,-1,sizeof head);scanf("%d",&n);s = 0;t = n + 1;LL x,ret;for(int i = 1;i <= n;i++)scanf("%lld",&x),AddEdge(s,i,x);for(int i = 1;i <= n;i++){ret = 0;for(int j = 1;j <= n;j++){scanf("%lld",&x);AddEdge(i,j,x << 1LL);bac += x;ret += x;}AddEdge(i,t,ret);}printf("%lld\n",bac - Dinic()); }
转载于:https://www.cnblogs.com/lzdhydzzh/p/8782587.html
[Bzoj2039][2009国家集训队]employ人员雇佣(最小割)相关推荐
- BZOJ 2039: [2009国家集训队]employ人员雇佣 最小割 二元组建图模型
2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec Memory Limit: 259 MB Submit: 1614 Solved: 789 [Subm ...
- bzoj2039[2009国家集训队]employ人员雇佣
bzoj2039[2009国家集训队]employ人员雇佣 题意: 有N个经理,Ei,j表示i经理对j经理的了解程度,当经理i和经理j同时被雇佣时,利润增加Ei,j*2.同时,雇佣每一个经理都需要花费 ...
- BZOJ 2039: [2009国家集训队]employ人员雇佣
二次联通门 : BZOJ 2039: [2009国家集训队]employ人员雇佣 /*BZOJ 2039: [2009国家集训队]employ人员雇佣最小割先全部雇佣每个人向汇点连边后源点分别向i,j ...
- BZOJ 2039 人员雇佣 (最小割)
题面:BZOJ传送门 网络流的题真神仙= = 大致分为三种情况 选某个人$i$,收益减少$a_{i}$ 选了$i$选了$j$,收益增加$2e_{ij}$ 选了$i$不选$j$,收益减少$e_{ij}$ ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)【莫队算法裸题学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MB Submit: 9894 Solved: 4561 [Su ...
- 2038: [2009国家集训队]小Z的袜子(hose)+莫队入门
题目链接:2038: [2009国家集训队]小Z的袜子(hose) 题目: Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再 ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) 分块
分块大法好 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MB Submit: 2938 Solved: 13 ...
- BZOJ2038 : [2009国家集训队]小Z的袜子(hose)(莫队算法)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MB Submit: 19269 Solved: 8851 [Sub ...
- 莫队算法 BOJ 2038 [2009国家集训队]小Z的袜子(hose)
题目传送门 1 /* 2 莫队算法:求出[l, r]上取出两只相同袜子的个数. 3 莫队算法是离线处理一类区间不修改查询类问题的算法.如果你知道了[L,R]的答案,可以在O(1)的时间下得到 4 [L ...
- 2038: [2009国家集训队]小Z的袜子(hose)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MB Submit: 15879 Solved: 7205 [S ...
最新文章
- C语言三路基数快排multikey quick sort算法(附完整源码)
- jvm对于java的意义_谈谈对JVM的理解
- Android插件化开发之动态加载三个关键问题详解
- 也许你需要点实用的-Web前端笔试题
- 【需求工程】需求管理
- 把exe里面的资源通通取出来
- php iis session 超时设置,如何配置IIS Session超时时间
- 拓展深度学习一种变相的马尔可夫链
- 关于数据型驱动自动化测试实现
- JSK-16501 扫雷游戏【谜题】
- IEEE802.5 令牌环网
- 小程序的优势和劣势是什么?
- python-2.找出数组中重复的数字
- VBA禁止更改工作表名称
- u深度做linux启动盘,u深度u盘启动盘制作教程
- 直播平台录播系统架构
- Java反射系列--Type接口及其子接口
- 算法之“鱼龙混杂”-3
- 怎么把pdf文件转换成jpg格式
- 经典好诗 词。。。。。
热门文章
- LINUX加载库时与WINDOWS有何不同
- 如果没有证据,判断一个事件的主谋的方法
- 安卓编解码的分辨率问题
- python之定义默认参数_035-Python之定义默认参数
- win10 桌面的的文件都不见了 提示不注销保存都文件都为临时_Windows10隐藏的8个小技巧,每一个都非常实用又高效...
- linux 7自定义服务,CentOS 7.x设置自定义开机启动,添加自定义系统服务
- mysql自带的全文索引_MySql全文索引详解
- matlab frontier,使用Matlab计算Efficient frontier
- 大学python考试会挂科吗_学姐含泪劝告:4个“最难学”的大学专业,考试“挂科”是常态...
- jar打包 剔除第三方依赖以及它的依赖_spring boot + gradle 打包 bootJar 瘦身分离 lib...