博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BeiJing2006 狼抓兔子
阅读量:6544 次
发布时间:2019-06-24

本文共 2648 字,大约阅读时间需要 8 分钟。

HYSBZ_1001

    建好图之后求最小割即可。

#include
#include
#define MAXD 1000100 #define MAXM 6000600 #define INF 1000000000 int N, M, T, e, first[MAXD], next[MAXM], u[MAXM], v[MAXM], flow[MAXM]; int q[MAXD], d[MAXD], work[MAXD], s[MAXD]; void add(int a, int b, int f) {
u[e] = a; v[e] = b; flow[e] = f; next[e] = first[a]; first[a] = e; e ++; } void init() {
int i, j, a, b, f; T = N * M - 1; e = 0; for(i = 0; i <= T; i ++) first[i] = -1; for(i = 0; i < N; i ++) for(j = 1; j < M; j ++) {
scanf("%d", &f); a = i * M + j - 1; b = i * M + j; add(a, b, f); add(b, a, f); } for(i = 1; i < N; i ++) for(j = 0; j < M; j ++) {
scanf("%d", &f); a = (i - 1) * M + j; b = i * M + j; add(a, b, f); add(b, a, f); } for(i = 1; i < N; i ++) for(j = 1; j < M; j ++) {
scanf("%d", &f); a = (i - 1) * M + j - 1; b = i * M + j; add(a, b, f); add(b, a, f); } } int bfs() {
int i, j, rear; for(i = 1; i <= T; i ++) d[i] = -1; d[0] = 0; rear = 0; q[rear ++] = 0; for(i = 0; i < rear ; i ++) for(j = first[q[i]]; j != -1; j = next[j]) if(flow[j] && d[v[j]] == -1) {
d[v[j]] = d[q[i]] + 1; if(v[j] == T) return 1; q[rear ++] = v[j]; } return 0; } int dinic() {
int i, j, cur, r, res = 0; while(bfs()) {
r = 0; cur = 0; for(i = 0; i <= T; i ++) work[i] = first[i]; for(;;) {
if(cur == T) {
int a = INF, minr = r; for(i = 0; i < r; i ++) if(flow[s[i]] < a) {
a = flow[s[i]]; minr = i; } for(i = 0; i < r; i ++) {
flow[s[i]] -= a; flow[s[i] ^ 1] += a; } r = minr; cur = u[s[r]]; res += a; } for(i = work[cur]; i != -1; i = next[i]) if(flow[i] && d[v[i]] == d[cur] + 1) break; work[cur] = i; if(i != -1) {
s[r ++] = i; cur = v[i]; } else {
d[cur] = -1; if(r == 0) break; r --; cur = u[s[r]]; } } } return res; } int main() {
while(scanf("%d%d", &N, &M) == 2) {
init(); int res = dinic(); printf("%d\n", res); } return 0; }

转载地址:http://geado.baihongyu.com/

你可能感兴趣的文章
好久不见
查看>>
小tips:JS中的children和childNodes
查看>>
二叉树的遍历
查看>>
Oracle的FIXED_DATE参数
查看>>
PostgresSQL中的限制和级联删除
查看>>
NDK配置
查看>>
(转)@ContextConfiguration注解说明
查看>>
docker in centos error
查看>>
c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
查看>>
[置顶] ※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)...
查看>>
Log4perl 的使用
查看>>
Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用
查看>>
《http权威指南》阅读笔记(十)
查看>>
JQuery UI Widget Factory官方Demo
查看>>
Atlas揭秘 —— 绑定(Binding)
查看>>
install xcode_3.2.5_and_iOS_sdk_4.2 _final with mac lion10.7.3
查看>>
JavaScript权威指南(第6版)
查看>>
sql 自定義百分比轉換小數函數
查看>>
一起谈.NET技术,C# 委托,事件和Lambda表达式
查看>>
远离云计算风险三步走
查看>>