博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3549 最大流(EK实现)
阅读量:4700 次
发布时间:2019-06-09

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

Problem:

题目都直接说求最大流了,还需要做什么

数据这么弱,直接套最大流模版

#include
#include
#include
#include
using namespace std;#define MAXN 16int map[MAXN][MAXN],n,m,ans,pre[MAXN];//map[][]邻接矩阵存图,pre[]前驱数组 bool EK_BFS(int start,int end){
//宽搜寻增广路 queue
que; bool flag[MAXN];//标记点是否被选入队列 memset(flag,false,sizeof(flag)); memset(pre,-1,sizeof(pre));//初始化前驱数组 que.push(start); flag[start]=true; while(!que.empty()){ int e=que.front(); if(e==end)return true;//当队头弹出的点为终点时 表示寻到增广路 que.pop(); for(int i=1;i<=n;i++){ if(map[e][i] && !flag[i]){ flag[i]=true; pre[i]=e; que.push(i); } } } return false;}void work(){
//EK_max_flow ans=0;//初始化最大流 while(EK_BFS(1,n)){ int Minf=1010; int u=n; while(pre[u]!=-1){ Minf=min(Minf,map[pre[u]][u]);//寻找瓶颈边 u=pre[u]; } ans+=Minf; u=n; while(pre[u]!=-1){
//修改路径上的边流量 map[pre[u]][u]-=Minf; map[u][pre[u]]+=Minf; u=pre[u]; } }}void init(){ scanf("%d%d",&n,&m); memset(map,0,sizeof(map)); int x,y,c; for(int i=0;i
View Code

相关知识传送门:

还不够...百度谷歌告诉你

图论网络流什么的,太赞了.....真的很好玩(很好玩的哟,你也要来玩吗?)

转载于:https://www.cnblogs.com/cshhr/p/3550007.html

你可能感兴趣的文章
JdbcTemplate
查看>>
第一次使用maven记录
查看>>
SharePoint服务器端对象模型 之 使用CAML进展数据查询
查看>>
Building Tablet PC Applications ROB JARRETT
查看>>
Adobe® Reader®.插件开发
查看>>
【POJ 3461】Oulipo
查看>>
Alpha 冲刺 (5/10)
查看>>
使用Siege进行WEB压力测试
查看>>
斑马为什么有条纹?
查看>>
android多层树形结构列表学习笔记
查看>>
Android_去掉EditText控件周围橙色高亮区域
查看>>
《构建之法》第一、二、十六章阅读笔记
查看>>
arrow:让Python的日期与时间变的更好
查看>>
(转)Excel的 OleDb 连接串的格式(连接Excel 2003-2013)
查看>>
Java并发编程
查看>>
Git Stash用法
查看>>
sql server 2008学习8 sql server存储和索引结构
查看>>
Jquery radio选中
查看>>
memcached 细究(三)
查看>>
RSA System.Security.Cryptography.CryptographicException
查看>>