BZOJ1070 修车-费用网络流
http://www.lydsy.com/JudgeOnline/problem.php?id=1070
Description
同一时刻有N位车主带着他们的爱车来到了汽车维修中心。维修中心共有M位技术人员,不同的技术人员对不同
的车进行维修所用的时间是不同的。现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待的时间最
小。 说明:顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间。
Input
第一行有两个m,n,表示技术人员数与顾客数。 接下来n行,每行m个整数。第i+1行第j个数表示第j位技术人
员维修第i辆车需要用的时间T。
Output
最小平均等待时间,答案精确到小数点后2位。
HINT
数据范围: (2<=M<=9,1<=N<=60), (1<=T<=1000)
//.............
#include<iostream> #include<vector> #include<cstring> #include<cstdio> #include<queue> using namespace std; ; <<; struct Edge{ int from,to,cap,flow,cost; }; struct MCMF{ int n,m,s,t; vector<Edge> edges; vector<int> G[maxn]; int inq[maxn]; int d[maxn]; int p[maxn]; int a[maxn]; void init(int n){ this->n=n; ;i<=n;i++) G[i].clear(); edges.clear(); } void addEdge(int from,int to,int cap,int cost){ edges.push_back((Edge){,cost}); edges.push_back((Edge){to,,,-cost}); m=edges.size(); G[); G[to].push_back(m-); } bool BF(int s,int t,int& flow,int& cost){ ;i<=n;i++) d[i]=inf; memset(inq,,sizeof(inq)); d[s]=;inq[s]=;p[s]=;a[s]=inf; queue<int> Q; Q.push(s); while(!Q.empty()){ int u=Q.front();Q.pop(); inq[u]=; ;i<G[u].size();i++){ Edge& e=edges[G[u][i]]; if(e.cap>e.flow&&d[e.to]>d[u]+e.cost){ d[e.to]=d[u]+e.cost; p[e.to]=G[u][i]; a[e.to]=min(a[u],e.cap-e.flow); if(!inq[e.to]){ Q.push(e.to); inq[e.to]=; } } } } if(d[t]==inf) return false; flow+=a[t]; cost+=d[t]*a[t]; int u=t; while(u!=s){ edges[p[u]].flow+=a[t]; edges[p[u]^].flow-=a[t]; u=edges[p[u]].from; } return true; } int MinCost(int s,int t){ ,cost=; while(BF(s,t,flow,cost)); return cost; } }; MCMF solver; ][]; int main() { int n,m; scanf("%d %d",&m,&n); solver.init(+n*(m+)); ;i<=n;++i) ;j<=m;++j) scanf("%d",&t[i][j]); ;i<=n;++i) solver.addEdge(,+i,,); ;i<=n*m;++i) solver.addEdge(+n+i,+n+n*m,,); ;i<=n;i++){ ;j<=m;j++){ int T=t[i][j]; ;k<=n;k++) solver.addEdge(+i,+n+(j-)*n+k,,T*k); } } printf(,+n*(m+)))/n); ; }
BZOJ1070 修车-费用网络流的更多相关文章
- [SCOI2007][bzoj1070] 修车 [费用流]
题面 传送门 思路 我们考虑某个工人修车的从前到后序列如下: ${W_1,W_2,W_3,...,W_n}$ 那么,对于这n辆车的车主而言,他们等候的总时间为: $\sum_{i=1}^{n}W_i\ ...
- 【BZOJ1070】[SCOI2007]修车 费用流
[BZOJ1070][SCOI2007]修车 Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的. ...
- BZOJ-1070 修车 最小费用最大流+拆点+略坑建图
1070: [SCOI2007]修车 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3624 Solved: 1452 [Submit][Status] ...
- [费用流][BZOJ1070]修车
修车 题目描述 同一时刻有位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均 ...
- [BZOJ1070][SCOI2007]修车 费用流
1070: [SCOI2007]修车 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 6209 Solved: 2641[Submit][Status] ...
- LG2053/BZOJ1070 「SCOI2007」修车 费用流
问题描述 LG2053 BZOJ1070 题解 将\(m\)个修理工拆为\(n \times m\)个,将修理工和车辆看做二分图,连出一个完全二分图. 边流量为\(1\),费用为时间,费用流即可. \ ...
- bzoj1070 修车&& bzoj2879美食节 【费用流】
bzoj1070: 把每个工人拆成汽车那么多个点,假如说 工人(i, j) 和 汽车k 连边,那就代表第i个工人倒数第j个修汽车k,那么这条边对以后的贡献就是k*time[i修k]. #include ...
- [bzoj1070][SCOI2007]修车——费用流
题目大意: 传送门 题解: 本题和(POJ3686)[http://poj.org/problem?id=3686]一题一模一样,而且还是数据缩小以后的弱化版QAQ,<挑战程序设计竞赛>一 ...
- [BZOJ1070] [SCOI2007] 修车 (费用流 & 动态加边)
Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使 ...
随机推荐
- can't run as root without the -u switch
[root@localhost ~]# /usr/local/memcache/bin/memcached can't run as root without the -u switch [root@ ...
- python使用xlrd模块读写Excel文件的方法
本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...
- 55. Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- .NET简谈插件系统开发模式
摘选自[王清培]博客 http://www.cnblogs.com/wangiqngpei557/archive/2011/06/10/2077413.html 今天跟大家分享一下我们在日常开发中并不 ...
- ADF_ADF Faces系列6_ADF数据可视化组件简介之建立Thematic Map Component
2013-05-01 Created By BaoXinjian
- PLSQL_性能优化系列01_Oracle Index索引
2014-06-01 Created By BaoXinjian
- OAF_EO系列3 - Initialize详解和实现(案例)
2014-06-14 Created By BaoXinjian
- systick优先级的理解
sysTick系统嘀嗒定时器并非STM32独有的,它是Cortex内核的部分,CM3为它专门开出一个异常类型,并且在中断向量表中占有一席之地(异常号15).这样它可以很方便的移植到不同厂商出CM3内核 ...
- Ubuntu Server如何配置SFTP
SH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议.(参考资料:http://en.wikipedia.org/wiki/SSH_File_Transfer_P ...
- Jquery Validation 插件验证手机号
自定义手机号验证代码 http://www.2cto.com/kf/201505/402781.html // 手机号码验证 jQuery.validator.addMethod("isM ...