HDU 3549 Flow Problem(最大流模板)
2024-08-26 16:46:16
http://acm.hdu.edu.cn/showproblem.php?pid=3549
刚接触网络流,感觉有点难啊,只好先拿几道基础的模板题来练练手。
最大流的模板题。
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
using namespace std; int n, m, flow;
int vis[];
//路径记录
int pre[];
//邻接表
int G[][]; void Maxflow()
{
for (;;)
{
memset(vis, , sizeof(vis));
memset(pre, , sizeof(pre));
queue<int> q;
q.push();
vis[] = ;
while (!q.empty())
{
int x = q.front();
q.pop();
//到达终点
if (x == n) break;
for (int i = ; i <= n; i++)
{
if (!vis[i] && G[x][i] > )
{
vis[i] = ;
q.push(i);
//记录好路径
pre[i] = x;
}
}
}
//没有找到增广路
if (!vis[n]) break;
int _min = ;
for (int i = n; i != ; i = pre[i])
_min = min(_min, G[pre[i]][i]);
for (int i = n; i != ; i = pre[i])
{
G[i][pre[i]] += _min;
G[pre[i]][i] -= _min;
}
flow += _min;
}
return;
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
int T;
int u, v, w;
cin >> T;
for (int kase = ; kase <= T; kase++)
{
cin >> n >> m;
memset(G, , sizeof(G));
for (int i = ; i < m; i++)
{
cin >> u >> v >> w;
G[u][v] += w;
}
flow = ;
Maxflow();
cout << "Case " << kase << ": " << flow << endl;
}
}
最新文章
- shader函数
- 支持向量机(SVM)算法的matlab的实现
- Poj 3683-Priest John&#39;s Busiest Day 2-sat,拓扑排序
- K - 计算球体积
- 方法覆盖(override)”的要点
- Server2008系统 FTP下载“当前的安全设置不允许”的解决方法
- sharepoint 创建个人网站
- TIMO后台管理系统-基于SpringBoot开发
- Android面试题集合
- Node.js API 初解读(三)
- SpringBoot打包不同配置profile
- phpStudy 切换版本后没有权限的问题
- 【转载】在linux下别用zip 用tar来压缩文件 zip解压后还是utf-8 window10是GBK
- 解决MySQL5.7密码重置问题
- vscode调试angular
- 管理idea Open Recent
- 5月14日 绿城育华NOIP巨石杯试卷解析
- 【mybatis】多次查询缓存的问题
- nodejs(二)child_process模块
- Python语言库pyttsx3
热门文章
- ul li剧中对齐
- MySQL多线程备份工具:mydumper
- [LeetCode] 844. Backspace String Compare_Easy tag: Stack **Two pointers
- [LeetCode] 605. Can Place Flowers_Easy
- JSP—作用域
- YUV编码格式
- M2C的概念
- Impala与Hive的比较
- python的subprocess的简单使用和注意事项
- python import win32clipboard 报错DLL load failed: %1 不是有效的 Win32 应用程序。