1391: [Ceoi2008]order
Input
#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f; #define rep(i, j, k) for (int i = j; i <= k; ++i) const int maxn = +;
const int maxv = +, maxe = +;
struct MaxFlow {
int edge, head[maxv], to[maxe], next[maxe];
int cap[maxe];
MaxFlow() { edge = ; memset(head, -, sizeof head); }
void addedge(int u, int v, int c) {
to[edge] = v, next[edge] = head[u];
cap[edge] = c;
head[u] = edge++;
}
void addEdge(int u, int v, int c) {
// printf("%d %d %d\n", u, v, c);
addedge(u, v, c);
addedge(v, u, );
} int s, t;
int cur[maxv], dis[maxv], que[maxv*maxv/], front, back; bool bfs() {
que[front=back=] = s;
memset(dis, INF, sizeof (int)*(t+));
dis[s] = ;
while (front <= back) {
int u = que[front++];
for (int i=head[u]; i!=-; i=next[i]) {
if (cap[i]> && dis[to[i]]>dis[u]+) {
dis[to[i]] = dis[u]+;
que[++back] = to[i];
}
}
}
return dis[t]!=INF;
} int dfs(int u, int a) {
if (u==t || a==)
return a;
int flow=, f;
for (int &i=cur[u], v; i!=-; i=next[i])
if (cap[i]> && dis[v=to[i]]==dis[u]+ && (f=dfs(v, min(a, cap[i])))>) {
cap[i]-=f, cap[i^]+=f;
flow+=f, a-=f;
if (a==) break;
}
return flow;
} int MF() {
int ret = ;
while (bfs()) {
memcpy(cur, head, sizeof (int) * (t+));
ret += dfs(s, INF);
}
return ret;
}
} mf; int n, m; int main() {
scanf("%d%d", &n, &m);
int s = , t = n+m+;
int c, x, sum = ;
int p, v;
for (int i = ; i <= n; ++i) {
scanf("%d", &c);
sum += c;
mf.addEdge(s, i, c);
scanf("%d", &x);
for (int j = ; j <= x; ++j) {
scanf("%d %d", &p, &v);
mf.addEdge(i, n+p, v);
}
}
rep(i, , m) {
scanf("%d", &c);
mf.addEdge(n+i, t, c);
}
mf.s = s, mf.t = t;
printf("%d\n", sum-mf.MF()); return ;
}
1391: [Ceoi2008]order的更多相关文章
- BZOJ 1391: [Ceoi2008]order [最小割]
1391: [Ceoi2008]order Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1509 Solved: 460[Submit][Statu ...
- Bzoj 1391: [Ceoi2008]order 网络流,最大权闭合图
1391: [Ceoi2008]order Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1105 Solved: 331[Submit][Statu ...
- BZOJ 1391 [Ceoi2008]order
1391: [Ceoi2008]order Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完 ...
- bzoj 1391 [Ceoi2008]order(最小割)
[题意] 有n个有偿工作选做,m个机器,完成一个工作需要若干个工序,完成每个工序需要一个机器,对于一个机器,在不同的工序有不同的租费,但买下来的费用只有一个.问最大获益. [思路] 对于工作和机器建点 ...
- P4177 [CEOI2008]order(网络流)最大权闭合子图
P4177 [CEOI2008]order 如果不能租机器,这就是最大权闭合子图的题: 给定每个点的$val$,并给出限制条件:如果取点$x$,那么必须取$y_1,y_2,y_3......$,满足$ ...
- [CEOI2008]order --- 最小割
[CEOI2008]order 题目描述: 有N个任务,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数, ...
- [Luogu4177][CEOI2008]order
luogu sol 这题有点像网络流24题里面的太空飞行计划啊. 最大收益=总收益-最小损失. 先令\(ans=\sum\)任务收益. 源点向每个任务连容量为收益的边. 每个机器向汇点连容量为购买费用 ...
- BZOJ1391: [Ceoi2008]order
Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数,求最大利润 Inpu ...
- [CEOI2008]order
Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数,求最大利润 Solu ...
随机推荐
- K8S发布解释型语言应用的最佳实践
说明 我们知道,k8s在发布编译型语言的应用时,几乎不用多考虑,就会选择将编译好jar/war包(java语言)或者二进制文件(golang/c++)直接打到镜像当中,生成新的应用镜像,然后将镜像推到 ...
- Kubernetes init container
目录 简介 配置 init container与应用容器的区别 简介 在很多应用场景中,应用在启动之前都需要进行如下初始化操作: 等待其他关联组件正确运行(例如数据库或某个后台服务) 基于环境变量或配 ...
- Java基础-正则表达式(Regular Expression)语法规则简介
Java基础-正则表达式(Regular Expression)语法规则简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.正则表达式的概念 正则表达式(Regular Exp ...
- gulp+webpack配置
转自:https://www.jianshu.com/p/2549c793bb27 gulp gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开 ...
- Qt_扫雷游戏实现
源代码下载(详细注释): 详细代码(注释): https://github.com/xiaocangtian/GameMine 链接: http://pan.baidu.com/s/1gf9Ux5h ...
- excel sum求和遇到的问题及解决
在偶遇的,借助excel公式sum对一个数字数组进行求和,结果为0,很是诧异,当然原因就是,数组里的数字是“常规”格式,不是“数值”格式,由于系统生成的excel,不方便生成的同时再做格式的设置,于是 ...
- addclass,removeclass
定义和用法 addClass() 方法向被选元素添加一个或多个类. 该方法不会移除已存在的 class 属性,仅仅添加一个或多个 class 属性. 提示:如需添加多个类,请使用空格分隔类名. rem ...
- phpexcel 导入导出excel表格
phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...
- c++细节--section1
1.register声明的变量为寄存器变量,因此没有地址,不能对它取地址操作. 2.[用错sizeof]当数组作为函数参数传递时,数组会退化为同类型的指针. 3.每个成员在成员初始化列表中只能出现一次 ...
- 7 SQL优化技术
7.1 改变访问结构 7.2 修改SQL语句 SELECT deptno FROM dept WHERE deptno NOT IN (SELECT deptno FROM emp); SELEC ...