BZOJ 1391 [CEOI] Order - 网络流 最大流
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 - 网络流 最大流的更多相关文章
- 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 [最小割]
1391: [Ceoi2008]order Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1509 Solved: 460[Submit][Statu ...
- bzoj 1391 [Ceoi2008]order(最小割)
[题意] 有n个有偿工作选做,m个机器,完成一个工作需要若干个工序,完成每个工序需要一个机器,对于一个机器,在不同的工序有不同的租费,但买下来的费用只有一个.问最大获益. [思路] 对于工作和机器建点 ...
- POJ 1459-Power Network(网络流-最大流-ISAP)C++
Power Network 时间限制: 1 Sec 内存限制: 128 MB 题目描述 A power network consists of nodes (power stations, cons ...
- [POJ1273][USACO4.2]Drainage Ditches (网络流最大流)
题意 网络流最大流模板 思路 EK也不会超时 所以说是一个数据比较水的模板题 但是POJ有点坑,多组数据,而且题目没给 哭得我AC率直掉 代码 用的朴素Dinic #include<cstdio ...
- HDU 3081 Marriage Match II (网络流,最大流,二分,并查集)
HDU 3081 Marriage Match II (网络流,最大流,二分,并查集) Description Presumably, you all have known the question ...
- HDU1532 网络流最大流【EK算法】(模板题)
<题目链接> 题目大意: 一个农夫他家的农田每次下雨都会被淹,所以这个农夫就修建了排水系统,还聪明的给每个排水管道设置了最大流量:首先输入两个数n,m ;n为排水管道的数量,m为节点的数量 ...
- Redraw Beautiful Drawings(hdu4888)网络流+最大流
Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
随机推荐
- 指向字符串的指针和char类型的数组
指针数组的效率比二维字符数组的效率高 指针数组不能修改字符串字面量,而二维字符数组中的内容可以更改
- sqlite 时间戳转时间
), 'unixepoch','localtime') from messages where data != '' order by timestamp desc 官方eg: Examples Co ...
- SpringBoot 热启动
在开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-bo ...
- 关于订单BOM替换组件不成功的问题
替换成功的案例: SELECT * FROM IN_BOM_DETAILS WHERE BOM_ID='00161815_2023_01P19'; --成品编码:000000101011006433P ...
- PAT1135(红黑书的判定)
There is a kind of balanced binary search tree named red-black tree in the data structure. It has th ...
- Example of Formalising a Grammar for use with Lex & Yacc
Here is a sample of a data-file that we want to try and recognise. It is a list of students and info ...
- http://www.bugku.com:Bugku——SQL注入1(http://103.238.227.13:10087/)
Bugku——SQL注入1(http://103.238.227.13:10087/) 过滤了几乎所有的关键字,尝试绕过无果之后发现,下面有个xss过滤代码.经搜索得该函数会去掉所有的html标签,所 ...
- Qt: 记事本源代码
界面编程之实例学习,系统记事本是个极好的参考,初学Delphi及后之c#,皆以记事本为参考,今以Qt学习,亦是如此. 期间搭建开发环境,复习c++知识,寻找模块对应功能,不一而足:现刻录其模块代码,以 ...
- 小服务程序(Java Servlet)
一般来说,servlet说起来挺高大上的,但是其实实际就是一个能够交互地浏览和修改页面数据,生成一个动态的Web页面. Servlet方法,页面实施请求数据,后台服务器给出响应,将数据返回到页面中去. ...
- swift -2018 - 创建PCH文件
第一种:简单方式 在swift文件 创建一个OC文件 1> command + n 2> 3> 此时 你会发现有提示 让你创建桥接文件 4>删除 OC文件 5> 直接复制 ...