Solution

非常简单的建边!!!

但是刚开始的代码不够体现社会主义的优越性, 于是我 ....

惨痛教训啊。。。 终于到了今天才能够体现社会主义优越性。。。

Code

 #include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#define rd read()
#define R register
#define rep(i,a,b) for(register int i = (a); i <= (b); ++i)
#define per(i,a,b) for(register int i = (a); i >= (b); --i)
#define ll long long
using namespace std; const int N = 1e6 + 1e5, M = 4e3;
const int inf = ~0U >> ;
int n, m, head[M], tot, cur[M];
int dep[M], S, T;
int sum, ans; queue<int> q; struct edge {
int nxt, to, val;
}e[N * ]; inline int read() {
int X = , p = ; char c = getchar();
for(; c > '' || c < ''; c = getchar()) if(c == '-') p = -;
for(; c >= '' && c <= ''; c = getchar()) X = X * + c - '';
return X * p;
} inline void added(int u, int v, int val) {
e[++tot].to = v;
e[tot].val = val;
e[tot].nxt = head[u];
head[u] = tot;
} inline void add(int u, int v, int val) {
added(u, v, val); added(v, u, );
} int ch(int x) {
return ((x + ) ^ ) - ;
} int bfs() {
rep(i, S, T) dep[i] = ;
dep[S] = ;
q.push(S);
for(R int u; !q.empty();) {
u = q.front(); q.pop();
for(R int i = head[u]; i; i = e[i].nxt) {
R int nt = e[i].to;
if(!dep[nt] && e[i].val) {
dep[nt] = dep[u] + ;
q.push(nt);
}
}
}
return dep[T];
} inline int minn(int A, int B) {
return A > B ? B : A;
} int dfs(R int u, R int flow) {
if(u == T || !flow) return flow;
if(!flow) return ;
R int re = ;
for(R int i = cur[u]; i && flow; i = e[i].nxt, cur[u] = i) {
R int nt = e[i].to;
if(dep[nt] != dep[u] + || !e[i].val) continue;
R int tmp = dfs(nt, minn(flow, e[i].val));
if(!tmp) continue;
re += tmp;
flow -= tmp;
e[i].val -= tmp;
e[i ^ ].val += tmp;
if(!flow) return re;
}
return re;
} int main()
{
n = rd; m = rd;
T = n + m + ;
tot = ;
rep(i, , n) {
R int cost = rd;
add(S, i, cost);
sum += cost;
int cnt = rd;
rep(j, , cnt) {
int x = rd, v = rd;
add(i, n + x, v);
}
}
rep(i, , m) {
R int x = rd;
add(i + n, T, x);
}
for(; bfs();) {
memcpy(cur, head, sizeof(head));
ans += dfs(S, inf);
}
printf("%d\n", sum - ans);
}

BZOJ 1391 [CEOI] Order - 网络流 最大流的更多相关文章

  1. Bzoj 1391: [Ceoi2008]order 网络流,最大权闭合图

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1105  Solved: 331[Submit][Statu ...

  2. BZOJ 1391 [Ceoi2008]order

    1391: [Ceoi2008]order Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完 ...

  3. BZOJ 1391: [Ceoi2008]order [最小割]

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Statu ...

  4. bzoj 1391 [Ceoi2008]order(最小割)

    [题意] 有n个有偿工作选做,m个机器,完成一个工作需要若干个工序,完成每个工序需要一个机器,对于一个机器,在不同的工序有不同的租费,但买下来的费用只有一个.问最大获益. [思路] 对于工作和机器建点 ...

  5. POJ 1459-Power Network(网络流-最大流-ISAP)C++

    Power Network 时间限制: 1 Sec  内存限制: 128 MB 题目描述 A power network consists of nodes (power stations, cons ...

  6. [POJ1273][USACO4.2]Drainage Ditches (网络流最大流)

    题意 网络流最大流模板 思路 EK也不会超时 所以说是一个数据比较水的模板题 但是POJ有点坑,多组数据,而且题目没给 哭得我AC率直掉 代码 用的朴素Dinic #include<cstdio ...

  7. HDU 3081 Marriage Match II (网络流,最大流,二分,并查集)

    HDU 3081 Marriage Match II (网络流,最大流,二分,并查集) Description Presumably, you all have known the question ...

  8. HDU1532 网络流最大流【EK算法】(模板题)

    <题目链接> 题目大意: 一个农夫他家的农田每次下雨都会被淹,所以这个农夫就修建了排水系统,还聪明的给每个排水管道设置了最大流量:首先输入两个数n,m ;n为排水管道的数量,m为节点的数量 ...

  9. Redraw Beautiful Drawings(hdu4888)网络流+最大流

    Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...

随机推荐

  1. 学习QT——GUI的基础用法(2)

    1.listWidget列表 在构造函数里面添加: ; i<; i++) { ui->listWidget->addItem(QString::number(i)+"ite ...

  2. Excel 整个列数字转换成文本

    选中该列----数据---分列----下一步---到步骤三----列数据格式---勾选"文本"---完成.

  3. Java NIO Files

    Java NIO Files Files.exists() Files.createDirectory() Files.copy() Overwriting Existing Files Files. ...

  4. 数组的es6新方法

    1.数组去重 var  changeReArr=(arr)=>{ return Array.from(new Set([1,2,2,3,5,4,5]))//利用set将[1,2,2,3,5,4, ...

  5. mysql5.7.10开启慢查询

    MySql提供慢SQL日志的功能,能够记录下响应时间超过一定阈值的SQL查询,以便于我们定位糟糕的查询语句. 首先,查询当前mysql数据库是否开启了慢查询日志功能: show VARIABLES l ...

  6. SO减单后MO分配给其他SO的问题修复

    逻辑:MO取进FP系统之前,首先判断是否带有SO号+SO行号,如果带有SO号+SO行号,则判断此SO号和SO行号是否存在订单表中,如果不存在则表示此MO对应的订单已减单,此MO需要做过滤,并展现在报表 ...

  7. Java 面向切面 AOP

    参考: :http://www.blogjava.net/supercrsky/articles/174368.html AOP: Aspect Oriented Programming 即面向切面编 ...

  8. java学习笔记整理

    java知识模块:1.基础知识,数组,字符串,正则表达式:2.类和对象,接口,继承,多态,抽象类,内部类,泛型,java常用类库.3.异常处理: 4.IO:   5.事件处理:   6.多线程:  7 ...

  9. 库的操作&表的操作

    一 库的操作 掌握库的增删改查 一.系统数据库 执行如下命令,查看系统库 show databases; information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数 ...

  10. vue 中安装使用sass 报错遇到的问题整理

    不出错的情况下,正常安装: 1.安装包: npm install node-sass --save-dev npm install sass-loader --save-dev (sass-loade ...