歇逼了一晚上,懵懵懂懂的懂了Dinic算法

大概是一遍BFS+DFS,还不是很懂,明天继续看!!!

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = ;
const int inf = 0x3f3f3f3f;
struct edge{
int to,next,w;
}e[maxn<<];
int n,m,cnt=;
int head[maxn];
int ans;
int d[maxn];
void link(int u,int v,int w){//建立双向边
e[++cnt]=(edge){v,head[u],w};head[u]=cnt;
e[++cnt]=(edge){u,head[v],w};head[v]=cnt;
}
bool bfs(){
memset(d,-,sizeof(d));
queue<int> q;q.push();d[]=;
while(!q.empty()){
int x=q.front();
q.pop();
for (int i=head[x];i;i=e[i].next){
if (e[i].w && d[e[i].to]<){
q.push(e[i].to);
d[e[i].to]=d[x]+;
}
}
}
return d[n*m]< ? :;
}
int dfs(int x,int f){
if (x==n*m || f==)return f;
int w,used=;
for (int i=head[x];i;i=e[i].next)if (e[i].w && d[e[i].to]==d[x]+) {
w=dfs(e[i].to,min(f-used,e[i].w));
e[i].w-=w;
e[i^].w+=w;
used+=w;
if (used==f)return f;
}
if (!used)d[x]=-;
return used;
}
void Dinic(int s){
while(bfs())ans+=dfs(s,inf);
}
int main(){
int x;
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++){
for (int j=;j<m;j++){
scanf("%d",&x);
link(m*(i-)+j,m*(i-)+j+,x);//求出边权连接的左右两个点
}
}
for (int i=;i<n;i++){
for (int j=;j<=m;j++){
scanf("%d",&x);
link(m*(i-)+j,m*i+j,x);//求出边权连接的上下两个点
}
}
for (int i=;i<n;i++){
for (int j=;j<m;j++){
scanf("%d",&x);
link(m*(i-)+j,m*i+j+,x);//斜边上两个点
}
}
Dinic();
printf("%d",ans);
return ;
}

网络流第一题!!!BZOJ1001的更多相关文章

  1. POJ 1293 网络流 第一题

    完全的模板,做多了就好了吧 反向流量真的很有意思,有这样一种说法比较容易理解.”正向是+,反向就是-,其实是等价的.因为每次找到的增广路不一定是最优解里面的,所以再进行后面的操作的时候要重新选择,而反 ...

  2. 【网络流24题】No.1 搭配飞行员(飞行员配对方案问题)

    [问题描述]     飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员.由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞 ...

  3. LibreOJ 6003. 「网络流 24 题」魔术球 贪心或者最小路径覆盖

    6003. 「网络流 24 题」魔术球 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数据 ...

  4. LibreOJ #6001. 「网络流 24 题」太空飞行计划 最大权闭合图

    #6001. 「网络流 24 题」太空飞行计划 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测 ...

  5. 【刷题】LOJ 6227 「网络流 24 题」最长k可重线段集问题

    题目描述 给定平面 \(\text{xoy}\) 上 \(n\) 个开线段组成的集合 \(\text{I}\) ,和一个正整数 \(k\) ,试设计一个算法. 从开线段集合 \(\text{I}\) ...

  6. 【刷题】LOJ 6121 「网络流 24 题」孤岛营救问题

    题目描述 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂,但幸好麦克得到了迷宫的地形图.迷宫的外形是一个长方形 ...

  7. Libre 6010「网络流 24 题」数字梯形 (网络流,最大费用最大流)

    Libre 6010「网络流 24 题」数字梯形 (网络流,最大费用最大流) Description 给定一个由n 行数字组成的数字梯形如下图所示.梯形的第一行有m 个数字.从梯形的顶部的m 个数字开 ...

  8. Libre 6008 「网络流 24 题」餐巾计划 (网络流,最小费用最大流)

    Libre 6008 「网络流 24 题」餐巾计划 (网络流,最小费用最大流) Description 一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,-,N).餐厅可以从三种途径获得餐巾. ...

  9. Libre 6005 「网络流 24 题」最长递增子序列 / Luogu 2766 最长递增子序列问题(网络流,最大流)

    Libre 6005 「网络流 24 题」最长递增子序列 / Luogu 2766 最长递增子序列问题(网络流,最大流) Description 问题描述: 给定正整数序列x1,...,xn . (1 ...

随机推荐

  1. 【PAT】B1056 组合数的和(15 分)

    就看着代码量一直到没什么好说的了 #include<stdio.h> int main(){ int N,K;scanf("%d",&N); int sum=0 ...

  2. safari 与 chrome 的小区别大BUG

    safari 与 chrome 的小区别大BUG 时间:2016-11-01 17:33:19 作者:zhongxia 原文地址:https://github.com/zhongxia245/blog ...

  3. Java日志框架Slf4j+Log4j入门

    一.日志系统介绍 slf4j,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.简答的讲就是slf4j是一系列的日志 ...

  4. 分布式消息列队RocketMQ部署

    模式: 多Master多Slave模式,异步复制: 每个 Master 配置一个 Slave,有多对Master-Slave,HA 采用异步复制方式,主备有短暂消息延迟,毫秒级. 优点:即使磁盘损坏, ...

  5. [USACO09JAN]安全出行Safe Travel

    题目 什么神仙题啊,我怎么只会\(dsu\)啊 我们考虑一个非常暴力的操作,我们利用\(dsu\ on \ tree\)把一棵子树内部的非树边都搞出来,用一个堆来存储 我们从堆顶开始暴力所有的边,如果 ...

  6. [WC2011]最大XOR和路径

    嘟嘟嘟 不愧是WC的题,思维真的很妙(虽然代码特别简单). 首先暴力找出所有路径肯定不行. 题中说可以经过重复的边,并且边权也会被计算多次.那么就是说,如果经过一条边再沿这条边回来,这条边的贡献就是0 ...

  7. go标准库的学习-time

    参考https://studygolang.com/pkgdoc 导入形式: import "time" time包提供了时间的显示和测量用的函数.日历的计算采用的是公历. 1&g ...

  8. linux源码分析 - 进程

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 最近在回想一些知识点的时候,觉得对进程这一块有些模糊,特别写一篇随笔对进程信息进行巩固和复习. 程序和进程 以我 ...

  9. 在IIS上部署你的ASP.NET Core项目 (转载)

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...

  10. Luogu3793 由乃救爷爷 分块、ST表

    传送门 因为昨天写暴力写挂在UOJ上用快排惨遭卡常,所以今天准备写一个卡常题消遣消遣,然后时间又垫底了QAQ 这道题显然需要支持一个\(O(N)\)预处理\(O(1)\)查询的ST表,显然普通的ST表 ...