Description

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

Input

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

Output

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

Sample Input

2 23 21 4

Sample Output

1.50

HINT

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

Source


其实就是让总等待时间最小。

不好贪心什么的,只能网络流了。

把每个人拆成n个点,表示他修的倒数第i个车,然后就枚举每个车被哪个人第几次修就行了。
第i个车被第j个人倒数第k次修,则贡献是k*a[i][j],因为后面的人要排队等他修完。

其他的很好说,流量为1,费用除了人和车是k*a[i][j]以外其他的都是0

我数组又开小了 自SDOI的MLE之后不敢开太大啊

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;typedef long long LL;
const int SZ = 10010;
const int INF = 1000000010;int head[SZ],nxt[300010],tot = 1;struct edge{int f,t,d,c;
}l[300010];void build(int f,int t,int d,int c)
{l[++ tot] = (edge){f,t,d,c};nxt[tot] = head[f];head[f] = tot;
}void insert(int f,int t,int d,int c)
{build(f,t,d,c); build(t,f,0,-c);
}deque<int> q;
bool use[SZ];
int dist[SZ],pre[SZ];bool spfa(int s,int e)
{memset(dist,63,sizeof(dist));dist[s] = 0;use[s] = 1;q.push_front(s);while(q.size()){int f = q.front(); q.pop_front();use[f] = 0;for(int i = head[f];i;i = nxt[i]){int v = l[i].t;if(l[i].d && dist[v] > dist[f] + l[i].c){dist[v] = dist[f] + l[i].c;pre[v] = i;if(!use[v]){use[v] = 1;if(q.empty() || dist[v] < dist[q.front()])q.push_front(v);elseq.push_back(v);}}}}if(dist[e] > INF) return false;return true;
}int dfs(int s,int e)
{int maxflow = INF;for(int i = pre[e];i;i = pre[l[i].f])maxflow = min(maxflow,l[i].d);int ans = 0;for(int i = pre[e];i;i = pre[l[i].f])ans += maxflow * l[i].c,l[i].d -= maxflow,l[i ^ 1].d += maxflow;return ans;
}   int EK(int s,int e)
{int ans = 0;while(spfa(s,e))ans += dfs(s,e);return ans;
}int a[233][233];int main()
{int n,m;scanf("%d%d",&m,&n);for(int i = 1;i <= n;i ++)for(int j = 1;j <= m;j ++)scanf("%d",&a[i][j]);int s = 10000,e = 10001;for(int i = 1;i <= n;i ++)insert(s,i,1,0);for(int i = 1;i <= n;i ++)for(int j = 1;j <= m;j ++)for(int k = 1;k <= n;k ++)insert(i,j * n + k,1,k * a[i][j]);for(int i = 1;i <= m;i ++)for(int j = 1;j <= n;j ++)insert(i * n + j,e,1,0);int ans = EK(s,e);printf("%.2lf\n",(double)ans / n);return 0;
}

【bzoj1070】[SCOI2007]修车 网络流相关推荐

  1. bzoj1070: [SCOI2007]修车 网络流

    bzoj1070: [SCOI2007]修车 Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同 的车进行维修所用的时间是不同的 ...

  2. bzoj1070: [SCOI2007]修车-费用流

    Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使 ...

  3. bzoj1070: [SCOI2007]修车

    本来想写美食节的..但是动态加点不会,今晚有点困,所以就写这题弱化版了. 然后做法就是把一个修理工拆成n个,表示倒数第几个修当前这辆车,这样做的原因就是修一部车的影响是对于后面的车的. 复习一波费用流 ...

  4. bzoj1070 [SCOI2007]修车 费用流+拆分

    这个题一开始容易想到最暴力的建法,由于前面的决策影响后面的人的等待时间,所以就枚举第几个选第几辆, 由于有后面受前面影响,所以也可以看成前面对后面影响,影响的最多n个,所以就枚举影响建图,由于3辆车 ...

  5. 洛谷 P2053 [SCOI2007]修车 网络流 最小费用最大流 Dinic+Spfa

    题目链接: https://www.luogu.com.cn/problem/P2053 思路参考博客: https://www.luogu.com.cn/blog/a23333/solution-p ...

  6. 【BZOJ】1070: [SCOI2007]修车

    1070: [SCOI2007]修车 Description 同 一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需 ...

  7. luogu P2053 [SCOI2007]修车

    P2053 [SCOI2007]修车 题目描述 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术 ...

  8. luogu P2053 [SCOI2007]修车(费用流提前计算)

    P2053 [SCOI2007]修车 要求平均时间最短,就等同于要求总时间最短. 一个人维修所花的时间,对同一位技术人员之后维修造成的影响是已知且固定的.那么,我们将费用提前计算.即将第 i 位车主的 ...

  9. BZOJ 1070: [SCOI2007]修车(最小费用最大流)

    建图很神奇..建完图其实就是裸的费用流了.. -------------------------------------------------------------- #include<cs ...

最新文章

  1. python HDF5 h5py 的用法
  2. 死磕算法第二弹——栈、队列、链表(5)
  3. Appnium安装-Mac平台
  4. Linux内核模块自动加载机制 .
  5. 用户界面草图设计工具-工具包和资源
  6. Netcore webservice
  7. 游戏开发之测试篇3(C++)
  8. 一名 IT 经理是如何把项目带崩的?
  9. 百度文库文档免费下载功能
  10. Android flag详解
  11. 还在为日程安排发愁?是因为你没有使用飞项
  12. Git 学习(篇六 --储藏与清理)
  13. 重新开博,短期目标,工作计划
  14. 矩阵快速幂2Jzzhu and Sequences Recurrences Contemplation! Algebra Reading comprehension
  15. 2018字节跳动(今日头条那个)一面凉经
  16. 中忻嘉业:抖音小店怎样来做
  17. [LLVM教程]LLVM之第一个语言前端
  18. 自定义组件中添加其他组件-1 83课 左边部分,右边部分的测试
  19. HTML5期末大作业:餐饮美食网站设计——绿色的餐饮美食网站(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
  20. android 老年模式 oppo,善用手机“老人模式”,OPPO这几大核心功能很关键

热门文章

  1. 任正非5.21答媒体42问全文实录
  2. HQL查询之分页查询
  3. 民营医院负面信息处理【优化】
  4. python数据分析与挖掘实战张良军_《Python数据分析与挖掘实战》PDF+完整源码
  5. 八讲:TF/MicroSD 卡的 SDHC 标准与Class 速度等级详解
  6. 【.Net Core】把dotnet core 项目部署到docker
  7. 微软数据中心沉海怎么回事?省钱环保还能加快网速
  8. 十月一国庆节、中秋节,聊聊十一放假的那点事!!
  9. FIL标准算力通证:FILST的征途将会怎样?
  10. 转:国内从事CV相关的企业