博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 6214【最少的最小割边数】
阅读量:5060 次
发布时间:2019-06-12

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

题目大意如题。

这道题想了很久也没明白题解的做法:

建边的时候每条边权 w = w * (E + 1) + 1;

这样得到最大流 maxflow / (E + 1) ,最少割边数 maxflow % (E + 1)

总之先把它当成黑科技背着吧

#include
#include
#include
using namespace std;struct node { int from; int to; int w; int next;}e[160000];int cur[1500];int head[1500];int divv[1500];int cont, ss, tt;void add(int from, int to, int w) { e[cont].from = from; e[cont].w = w; e[cont].to = to; e[cont].next = head[from]; head[from] = cont++;}int n, m; int makedivv() { memset(divv, 0, sizeof(divv)); divv[ss] = 1; queue
s; s.push(ss); while (!s.empty()) { int u = s.front(); if (u == tt)return 1; s.pop(); for (int i = head[u]; i != -1; i = e[i].next) { int w = e[i].w; int v = e[i].to; if (divv[v] == 0 && w) { divv[v] = divv[u] + 1; s.push(v); } } } return 0;}int Dfs(int u, int maxflow, int tt) { if (u == tt)return maxflow; int ret = 0; for (int &i = cur[u]; i != -1; i = e[i].next) { int v = e[i].to; int w = e[i].w; if (divv[v] == divv[u] + 1 && w) { int f = Dfs(v, min(maxflow - ret, w), tt); e[i].w -= f; e[i ^ 1].w += f; ret += f; if (ret == maxflow)return ret; } } return ret;}void Dinic() { long long int ans = 0; while (makedivv() == 1) { memcpy(cur, head, sizeof(head)); ans += Dfs(ss, 0x3f3f3f3f, tt); } printf("%lld\n", ans % 100000);}int main() { int t; scanf("%d", &t); while (t--) { scanf("%d%d", &n, &m); scanf("%d%d", &ss, &tt); cont = 0; memset(head, -1, sizeof(head)); for (int i = 0; i < m; i++) { int x, y, z; scanf("%d%d%d", &x, &y, &z); z = z * 100000 + 1; add(x, y, z); add(y, x, 0); } Dinic(); }}

转载于:https://www.cnblogs.com/tennant/p/8970825.html

你可能感兴趣的文章
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Windows Phone Marketplace 发布软件全攻略
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
语义web基础知识学习
查看>>
hexo个人博客添加宠物/鼠标点击效果/博客管理
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
关于WPF的2000件事 02--WPF界面是如何渲染的?
查看>>
单元测试、、、
查看>>
SVN使用教程总结
查看>>
JS 浏览器对象
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
虚拟中没有eth0
查看>>
Unity 3D游戏开发学习路线(方法篇)
查看>>
BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
查看>>
vuex插件
查看>>
2011年12月09日
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
合并单元格
查看>>
swift-初探webView与JS交互
查看>>