Description

  同一时刻有N位车主带着他们的爱车来到了汽车维修中心。维修中心共有M位技术人员,不同的技术人员对不同
的车进行维修所用的时间是不同的。现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待的时间最
小。 说明:顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间。

Input

  第一行有两个m,n,表示技术人员数与顾客数。 接下来n行,每行m个整数。第i+1行第j个数表示第j位技术人
员维修第i辆车需要用的时间T。

Output

  最小平均等待时间,答案精确到小数点后2位。

Sample Input

2 2
3 2
1 4

Sample Output

1.50

HINT

数据范围: (2<=M<=9,1<=N<=60), (1<=T<=1000)

/*
如果某个工人修一辆车花费t的时间,并且这是他修的倒数第k辆车,那么对答案的贡献是k*t。
我们把每个工人差拆成n个,第k各代表他修倒数第k辆车时的状态,然后建图跑费用流。
*/
#include<iostream>
#include<cstdio>
#include<queue>
#define N 1010
#define M 1000010
#define inf 1000000000
using namespace std;
int t[][],head[N],dis[N],inq[N],fa[N],n,m,S,T,cnt=;
struct node{int v,f,w,pre;}e[M];
queue<int> q;
void add(int u,int v,int f,int w){
e[++cnt].v=v;e[cnt].f=f;e[cnt].w=w;e[cnt].pre=head[u];head[u]=cnt;
e[++cnt].v=u;e[cnt].f=;e[cnt].w=-w;e[cnt].pre=head[v];head[v]=cnt;
}
bool spfa(){
for(int i=;i<=T;i++) dis[i]=inf;
q.push(S);dis[S]=;
while(!q.empty()){
int u=q.front();q.pop();inq[u]=;
for(int i=head[u];i;i=e[i].pre)
if(e[i].f&&dis[e[i].v]>dis[u]+e[i].w){
dis[e[i].v]=dis[u]+e[i].w;
fa[e[i].v]=i;
if(!inq[e[i].v]){
inq[e[i].v]=;
q.push(e[i].v);
}
}
}
return dis[T]!=inf;
}
int updata(){
int i=fa[T],x=inf;
while(i){
x=min(x,e[i].f);
i=fa[e[i^].v];
}
i=fa[T];
while(i){
e[i].f-=x;
e[i^].f+=x;
i=fa[e[i^].v];
}
return x*dis[T];
}
int main(){
scanf("%d%d",&m,&n);
S=;T=n*m+n+;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
scanf("%d",&t[i][j]);
for(int i=;i<=n*m;i++)
add(S,i,,);
for(int i=n*m+;i<=n*m+n;i++)
add(i,T,,);
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
for(int k=;k<=n;k++)
add((i-)*n+j,n*m+k,,t[k][i]*j);
int ans=;
while(spfa())
ans+=updata();
printf("%.2lf",(double)ans/n);
return ;
}

最新文章

  1. 航旅事业群面试(li)
  2. ASP.NET MVC 5 04 - 控制器
  3. Android实现播放视频
  4. 原生javascript实现省市区三级联动
  5. 机器学习---python环境搭建
  6. 【转载】JMeter学习(一)工具简单介绍
  7. .net 开发的奇淫巧计
  8. Apache 多端口多站点配置实例
  9. AMQP与QPID简介
  10. Dynamics CRM 开发模板使用手册(插件开发)
  11. 【转】译—游戏开发者应该如何应用Git和GitHub
  12. 序列化战争:主流序列化框架Benchmark
  13. 循环赛日程编排c代码
  14. A.02.01—功能定义—一般定义
  15. C#项目”XXXXX”针对的是”.NETFramework,Version=v4.7.1”但此计算机没有安装它
  16. web机试
  17. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) A,B,C
  18. maven的pom.xml文件标签含义
  19. redis 高级特性 不要太好用
  20. CH#56C 异象石

热门文章

  1. 你所不知道的js的小知识点(1)
  2. PowerDesigner导入Excel模板生成实体
  3. 三步搞定Vmware固定虚拟机的IP
  4. 利用DOM的方式点击切换图片及修改文字
  5. GNU中的关键字typeof
  6. Git-Git初始化
  7. Diycode开源项目 BaseApplication分析+LeakCanary第三方+CrashHandler自定义异常处理
  8. hadoop伪分布式集群的搭建
  9. Java消息中间件--初级篇
  10. 设计模式之序章-UML类图那点事儿