_bzoj1070 [SCOI2007]修车【最小费用最大流】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1070
以后做网络流题目就是不能省内存。。。
#include <cstdio>
#include <cstring>
#include <algorithm> const int maxnd = 10100, maxe = 100005; int m, n, time[65][15], S, T;
int head[maxnd], next[maxe], from[maxe], to[maxe], w[maxe], cap[maxe], flow[maxe], lb;
int d[maxnd], p[maxnd], c[maxnd], que[maxnd], head_, tail, h;
char inq[maxnd]; inline void ist(int aa, int ss, int ww, int ca) {
to[lb] = ss;
from[lb] = aa;
next[lb] = head[aa];
head[aa] = lb;
w[lb] = ww;
cap[lb] = ca;
++lb; to[lb] = aa;
from[lb] = ss;
next[lb] = head[ss];
head[ss] = lb;
w[lb] = -ww;
cap[lb] = 0;
++lb;
}
inline bool spfa(int & co) {
memset(d, 0x3c, sizeof d);
memset(inq, 0, sizeof inq);
head_ = tail = 0;
que[tail++] = S;
inq[S] = 1;
d[S] = 0;
c[S] = 2147483647;
while (head_ != tail) {
h = que[head_++];
inq[h] = 0;
if (head_ == T + 3) {
head_ = 0;
}
for (int j = head[h]; j != -1; j = next[j]) {
if (flow[j] < cap[j] && d[to[j]] > d[h] + w[j]) {
d[to[j]] = d[h] + w[j];
p[to[j]] = j;
c[to[j]] = std::min(c[h], cap[j] - flow[j]);
if (!inq[to[j]]) {
inq[to[j]] = 1;
que[tail++] = to[j];
if (tail == T + 3) {
tail = 0;
}
}
}
}
}
if (d[T] == 0x3c3c3c3c) {
return false;
}
co += d[T] * c[T];
for (int i = T; i != S; i = from[p[i]]) {
flow[p[i]] += c[T];
flow[p[i] ^ 1] -= c[T];
}
return true;
}
inline int mcmf(void) {
int co = 0;
while (spfa(co));
return co;
} int main(void) {
//freopen("in.txt", "r", stdin);
memset(head, -1, sizeof head);
memset(next, -1, sizeof next);
scanf("%d%d", &m, &n);
T = n * (m + 1) + 1;
for (int i = 1; i <= n; ++i) {
ist(S, i, 0, 1);
for (int j = 1; j <= m; ++j) {
scanf("%d", time[i] + j);
}
}
for (int j = 1; j <= m; ++j) {
for (int k = 1; k <= n; ++k) {
for (int i = 1; i <= n; ++i) {
ist(i, j * n + k, time[i][j] * k, 1);
}
ist(j * n + k, T, 0, 1);
}
}
printf("%.2f\n", (double)mcmf() / (double)n);
return 0;
}
_bzoj1070 [SCOI2007]修车【最小费用最大流】的更多相关文章
- BZOJ1070[SCOI2007]修车——最小费用最大流
题目描述 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待 ...
- BZOJ 1070: [SCOI2007]修车 [最小费用最大流]
1070: [SCOI2007]修车 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 4936 Solved: 2032[Submit][Status] ...
- BZOJ-1070 修车 最小费用最大流+拆点+略坑建图
1070: [SCOI2007]修车 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3624 Solved: 1452 [Submit][Status] ...
- bzoj 1070 [SCOI2007]修车(最小费用最大流)
1070: [SCOI2007]修车 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3515 Solved: 1411[Submit][Status] ...
- BZOJ1070: [SCOI2007]修车(最小费用最大流,思维)
Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同 的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序, ...
- 洛谷 P2053 [SCOI2007]修车(最小费用最大流)
题解 最小费用最大流 n和m是反着的 首先, \[ ans = \sum{cost[i][j]}*k \] 其中,\(k\)为它在当前技术人员那里,排倒数第\(k\)个修 我们可以对于每个技术人员进行 ...
- bzoj 1070: [SCOI2007]修车【最小费用最大流】
一开始从客人角度想的,怎么建都不对 从一个修车工所接待的所有顾客花费的总时间来看,设一共有x个人,那么第一个修的对总时间的贡献是x*w1,第二个是(x-1)*w2-以此类推.所以把第i个修车工拆成n组 ...
- BZOJ_1070_[SCOI2007]修车_费用流
BZOJ_1070_[SCOI2007]修车_费用流 Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同 的车进行维修所用的时间 ...
- [BZOJ 1070] [SCOI2007] 修车 【费用流】
题目链接:BZOJ - 1070 题目分析 首先想到拆点,把每个技术人员拆成 n 个点,从某个技术人员拆出的第 i 个点,向某辆车连边,表示这是这个技术人员修的倒数第 i 辆车.那么这一次修车对整个答 ...
- [板子]最小费用最大流(Dijkstra增广)
最小费用最大流板子,没有压行.利用重标号让边权非负,用Dijkstra进行增广,在理论和实际上都比SPFA增广快得多.教程略去.转载请随意. #include <cstdio> #incl ...
随机推荐
- Spring Security教程(5)---- 国际化配置及UserCache
这一章是为了给后面的讲解打基础的,主要介绍下国际化的配置及UserCache的配置及使用 国际化配置 <!-- 定义上下文返回的消息的国际化 --> <bean id="m ...
- C#编程语言及.NET 平台快速入门指南
github: https://github.com/mfjiang e-mail: hamlet.jiang@live.com ⼀.C#,CLR,IL,JIT概念 以及 .NET 家族 (⼀)基 ...
- 一个重绘MFC的文件传输client
一个重绘MFC的文件传输client,TCP/IP协议的文件传输client(支持上传.下载.续传.管理等功能,本处仅仅选择了上传功能).从用户视觉上看,肯定比原生MFC界面要有感觉,啥也不说了 ...
- Asp.net MVC 简单分页 自做简单分页
Asp.net MVC 简单分页: public static string Pager(int page,int pageSize,int total) { ...
- linux远程管理工具:putty
使用QTP测试文件上传和目录做成是否成功,必须先将文件和目录下载到本地,再作比较.现在下载工具众多,其中putty是最出色的一个,支持linux服务器,这点很重要“免费的”.下面就让我们来看一下吧! ...
- Linux —— 压缩文件
Linux——压缩文件 为什么需要压缩文件? 文件在传输过程中,可能由于文件过大,传输所需时间过多.减少文件大小有两个明显的好处,一是可以减 少存储空间,二是通过网络传输文件时,可以减少传 ...
- 在类的头文件里尽量少引入其它头文件 <<Effective Objective-C>>
与C 和C++ 一样,Objective-C 也使用"头文件"(header file) 与"实现文件"(implementation file)来区隔代码.用 ...
- git 团队代码管理交流共同进步
Installation methods for GitLab | GitLab https://about.gitlab.com/installation/#centos-7 gittutorial ...
- jquery loop on Json data using $.each
Hi I have the following JSON returned in a variable called data. THIS IS THE JSON THAT GETS RETURNED ...
- hexSHA1散列加密解密(不可逆)
1.maven引入codec和commons依赖: <dependency> <groupId>commons-codec</groupId> <artifa ...