题目:http://acm.hdu.edu.cn/showproblem.php?pid=3987
题意:求边数最少的割集
思路:与上文一样
代码:

#include<bits/stdc++.h>
using namespace std;typedef long long ll;
const ll INF = 1e18;
const int N = 500005;
int n,m,s,t,tot;
int head[N],dep[N],cur[N];struct edge
{int to,nxt;ll cap;edge(int t = 0,int n = 0,ll c = 0):to(t),nxt(n),cap(c){}
}E[N];void init()
{memset(head,-1,sizeof(head));tot = 0;
}
void add(int u,int v,ll cap)
{E[tot] = edge(v,head[u],cap);head[u] = tot++;
}
bool bfs(int s,int t)
{memset(dep,-1,sizeof(dep));queue<int> q;dep[s] = 0;q.push(s);while(!q.empty()){int u = q.front();q.pop();for(int i = head[u];~i;i = E[i].nxt){int v = E[i].to;if(E[i].cap > 0 && dep[v] == -1){dep[v] = dep[u] + 1;q.push(v);}}}return dep[t] != -1;
}
ll dfs(int u,ll flow)
{if(u == t)return flow;ll w ,used = 0;for(int i = head[u];~i;i = E[i].nxt){int v = E[i].to;if(dep[v] == dep[u]+1){w = flow - used;w = dfs(v,min(w,E[i].cap));E[i].cap -= w;E[i^1].cap += w;if(v) cur[u] = i;used += w;if(used == flow) return flow;}}if(!used) dep[u] = -1;return used;
}
ll dinic(int s,int t)
{ll res = 0;while(bfs(s,t)){for(int i = 1;i <= t;i++)cur[i] = head[i];res += dfs(s,INF);}return res;
}
int main()
{int T;scanf("%d",&T);for(int ca = 1;ca <= T;ca++){init();scanf("%d%d",&n,&m);s = 1,t = n;int u,v,d;ll w;while(m--){scanf("%d%d%lld%d",&u,&v,&w,&d);++u;++v;add(u,v,w*1000000+1);if(d)add(v,u,w*1000000+1);elseadd(v,u,0);}printf("Case %d: %lld\n",ca,dinic(s,t)%1000000);}return 0;
}

HDU-3987 Harry Potter and the Forbidden Forest(最大流)相关推荐

  1. 【最小割】HDU 3987 Harry Potter and the Forbidden Forest

    得到的最小割得到sum sum/E 为 最小割 sum%E 为最小割的边数 #include <stdio.h> #include <string.h> #include &l ...

  2. HDU - 3987 Harry Potter and the Forbidden Forest(最小割最少边数)

    题目链接:点击查看 题目大意:给出一个由n个点和m条边组成的图,求最小割的最小边数 题目分析:和hdu6214大同小异,都是模板题,这个题目用第一种方法,也就是先跑一遍最大流,然后修改一下残余网络上的 ...

  3. Forbidden Forest 错落森林

    乔治温斯顿10首经典钢琴曲交响乐版-Forbidden Forest 一贯以来,许多古典音乐改编为新世纪音乐的专辑,除了保留原有的色彩和高贵内 涵,更拥有了灵气和动感.而现在让我们去感受一种用交响音乐 ...

  4. hdu 3987(最小割的边数)

    题意:给出一张有n个点的图,有的边又向,有的边无向,现在要你破坏一些路,使得从点0无法到达点n-1.破坏每条路都有一个代价.求在代价最小的前提下,最少需要破坏多少条道路.(就是说求在最小割的前提下,最 ...

  5. 【HDU - 3081】Marriage Match II(网络流最大流,二分+网络流)

    题干: Presumably, you all have known the question of stable marriage match. A girl will choose a boy; ...

  6. hdu Kaka's Matrix Travels(最小费用最大流)

    把题意写一下:  给你一个n*n的矩阵,每个格子都有一个非负整数,从左上角走到右下角,收集走过的数字,累加,但是只能向右或者向下走,走过之后数字就变为0,让你求从左上角到右下角,走k次之后,所得的最大 ...

  7. HDU 6445 Search for Answer(最小费用最大流-mcmf)

    Description 给出一个nnn个点的完全图的邻接矩阵aaa,其中ai,j=1a_{i,j}=1ai,j​=1表示i,ji,ji,j之间边的方向是iii到jjj,ai,j=0a_{i,j}=0a ...

  8. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  9. 网络流题集【夏天的风】

    [HDU] 1532Drainage Ditches(基础)    [最大流] 3549 Flow Problem(基础)    [最大流] 3572 Task Schedule    [最大流]任务 ...

  10. 杭电OJ分类题目(4)-Graph

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...

最新文章

  1. 面向对象(面向对象设计,面向对象编程,实例变量)
  2. 软件工程--第三周学习进度
  3. springboot requestmapping 正则_SpringBoot实现优雅的后端接口
  4. python开发bs系统_基于BS架构的招聘管理系统的开发
  5. 与华为交换机用access_学校机房项目交换机的配置,理解这篇,交换机配置不再难...
  6. 如何在 C# 中使用 Dapper ORM
  7. JVM(1)——JVM内存分区
  8. 【PAT - 甲级1003】Emergency (25分)(Dijkstra,最短路条数,双权值最短路)
  9. 蓝桥杯第八届省赛JAVA真题----正则问题
  10. 如何在C/C++中动态分配二维数组
  11. NagiosQL 3的安装
  12. Multisim 14.0重新安装,解决无法打开的问题,multisim,安装
  13. 磨皮ps教程-庞姿姿
  14. EditText 去掉下划线,但是不丢失光标
  15. Xshell和Xftp使用(非商业用途可以免费使用啦)
  16. 芒果超媒的2022年报:一半明媚,一半忧伤
  17. Android 什么是Hook
  18. 选择云服务器主要看那方面的参数和性能
  19. 保研面试/考研复试:英语口语面试必备话题及常用句型句式整理(四)
  20. 小实操(3): 利用键盘事件实现小人快跑

热门文章

  1. 记一次学习爬取豆瓣数据于Excel表的爬虫
  2. 《让×××飞》经典影评
  3. java 根据数据库中存储的文件名批量修改本地文件的文件名后缀名
  4. 【MySQL学习笔记(十六)】之redo日志超详细讲解
  5. codeforces:D1. Chopping Carrots (Easy Version)【最大最小值问题 + 控制一边让另一边尽量靠近 + 思维】
  6. 谷歌广告联盟怎么收款?google AdSense 广告款收取流程!(转载)
  7. Bootstrap入门基础(二)
  8. TFT液晶屏显示原理
  9. (FPGA)verilog驱动RGB接口TFT液晶屏
  10. [FAQ20527] 如何关闭OTG功能