博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1070: [SCOI2007]修车 -- 费用流
阅读量:5101 次
发布时间:2019-06-13

本文共 1399 字,大约阅读时间需要 4 分钟。

1070: [SCOI2007]修车

Time Limit: 1 Sec  Memory Limit: 128 MB

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)

 

Source

 

  把每个工人拆成N个点。记为A[i,j]表示第i个工人修倒数第j辆车。

  每个车跟所有N*M个工人拆出的点连边。流量为1,费用为time[i,j]*k。

  源和每辆车连边,N*M个点和汇连边,流量都为1,费用同为0。

#include#include
#include
#include
#include
#include
#include
using namespace std;#define ll long long#define N 2010#define M 100010#define inf 100000007int T=1001;int fro[M],to[M],lj[N],v[M],w[M],fa[M],cnt=1;void add(int a,int b,int c,int d){fro[++cnt]=lj[a];to[cnt]=b;fa[cnt]=a;v[cnt]=c;w[cnt]=d;lj[a]=cnt;}void ins(int a,int b,int c,int d){add(a,b,c,d);add(b,a,0,-d);}int dis[N],q[N],from[N],ans;bool vs[N];bool spfa(){ memset(dis,0x3f,sizeof(dis)); int h=0,t=1,x; dis[0]=q[0]=0;vs[0]=1; while(h!=t) { x=q[h++]; if(h==T) h=0; for(int i=lj[x];i;i=fro[i]) { if(v[i]&&dis[to[i]]>dis[x]+w[i]) { dis[to[i]]=dis[x]+w[i]; from[to[i]]=i; if(!vs[to[i]]) { vs[to[i]]=1; q[t++]=to[i];if(t==T) t=0; } } } vs[x]=0; } return dis[T]

 

转载于:https://www.cnblogs.com/lkhll/p/6790620.html

你可能感兴趣的文章
Mysql 索引优化 - 1
查看>>
LeetCode(3) || Median of Two Sorted Arrays
查看>>
大话文本检测经典模型:EAST
查看>>
文本主题模型之LDA(一) LDA基础
查看>>
linux基础命令-chgrp/chown/chomd
查看>>
待整理
查看>>
iOS 6
查看>>
Nginx入门篇-基础知识与linux下安装操作
查看>>
一次动态sql查询订单数据的设计
查看>>
C# 类(10) 抽象类.
查看>>
1.linux ping:unknown host www.***.***
查看>>
无向图求桥 UVA 796
查看>>
Nginx+Keepalived 实现双击热备及负载均衡
查看>>
五分钟搭建WordPress博客(二)
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
jvm参数
查看>>
Something-Summary
查看>>
Spring学习笔记
查看>>
6个有用的MySQL语句
查看>>
linux c/c++ IP字符串转换成可比较大小的数字
查看>>