//这题不会做,看了大牛的解题报告才知道用费用流可解,不怎么熟悉,今天调试了一上午,终于弄明白了,其实最小费用流本身很好理解,最小费用在求最大流的时候和一般的网络流的盲目增广不同,而是选最小费用来增广,最后到不能增广为止,这题的难点就是怎么去构建成最小费用流;

详细思路具体参见下面这两个人的博客:

http://blog.csdn.net/flying_stones_sure/article/details/8010155

http://blog.csdn.net/kksleric/article/details/8009882

//贴个自己的代码留念一下:

#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std;
#define inf 1000000
int map[110][110],n,m;
int dis[210],vis[210];
int pre[210],cap[210][210],cost[210][210];
queue <int > que;
int bfs(int start,int end)
{int i;for(i=0;i<=n;i++)dis[i]=inf;memset(vis,0,sizeof(vis));dis[start]=0;que.push(start);vis[start]=1;while(!que.empty()){int u=que.front();vis[u]=0;que.pop();for(i=0;i<=n;i++){if(cap[u][i]>0&&dis[u]+cost[u][i]<dis[i]){dis[i]=dis[u]+cost[u][i];pre[i]=u;if(!vis[i]){vis[i]=1;que.push(i);}}}}return dis[end]<inf;
}
int mcmf(int start,int end)
{int i,res=0,Min;while(bfs(start,end)){Min=inf;for(i=end;i!=start;i=pre[i])if(cap[pre[i]][i]<Min)Min=cap[pre[i]][i];   for(i=end;i!=start;i=pre[i]){res+=Min*cost[pre[i]][i];cap[pre[i]][i]-=Min;cap[i][pre[i]]+=Min;}}return res;
}
int main()
{int a,b,c,i,j,k,g,p;while(scanf("%d%d%d",&n,&m,&k),n+m+k){for(i=0;i<=n;i++){map[i][i]=0;for(j=i+1;j<=n;j++){map[i][j]=inf;map[j][i]=inf;}}for(i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&c);if(map[a][b]>c){map[a][b]=c;map[b][a]=c;}}for(g=0;g<=n;g++){for(i=0;i<=n;i++){for(j=0;j<=n;j++){if(map[i][g]+map[g][j]<map[i][j])map[i][j]=map[i][g]+map[g][j];}}}p=n;n=2*n+2;for(i=0;i<=n;i++){for(j=0;j<=n;j++){cost[i][j]=inf;cap[i][j]=0;}}for(i=1;i<=p;i++){for(j=i+1;j<=p;j++){if(map[i][j]<inf){cost[i+p+1][j]=map[i][j];cost[j][i+p+1]=-map[i][j];cap[i+p+1][j]=inf;}}cap[i][i+p+1]=1;cost[i][i+p+1]=-inf;cost[i+p+1][i]=inf;if(map[0][i]<inf){cap[i+p+1][n]=inf;cost[i+p+1][n]=map[i][0];cost[n][i+p+1]=-map[i][0];cap[p+1][i]=inf;cost[p+1][i]=map[0][i];cost[i][p+1]=-map[0][i];}}cap[0][p+1]=k;cost[0][p+1]=0;cap[p+1][n]=k;cost[p+1][n]=0;printf("%d\n",mcmf(0,n)+p*inf);}return 0;
}/*
5 5 2
0 1 1
1 2 1
2 3 1
3 5 1
0 4 1
*/

hdu-4411-Arrest相关推荐

  1. HDU 4411 Arrest(费用流)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4411 题意:有n+1个城市,编号0到n.其中警察局在0号城市,1到n号城市中每个城市都有一个小偷.现在 ...

  2. HDU 4411 Arrest 费用流

    题目描述: Description There are (N+1) cities on TAT island. City 0 is where police headquarter located. ...

  3. HDU 4411 Arrest 最小费用流

    题意:有N+1个顶点M条边的无向图.编号为0的顶点是警察厅.编号为1~N的顶点都有犯罪团伙.现在警察厅需要派出K支小队抓住这些犯罪团伙,第i个点的犯罪团伙被抓到之后会马上通知第i-1个犯罪团伙.现要求 ...

  4. HDU 4411 Arrest

    http://www.cnblogs.com/jianglangcaijin/archive/2012/09/24/2700509.html 思路: S->0 流量为K费用0 0->i 流 ...

  5. hdu 4411 Arrest【最小费用流】

    题目链接 题意: 给定一个有(n+1)个节点的边权图,其中警察局在0点,其他n个点各有一个黑手党,现在警察局派出k个警察去抓黑手党,并逮捕会警察局,一旦黑手党i被抓,他会向黑手党i-1报信,任务就会失 ...

  6. hdu 4411 Arrest 费用流模板

    题意:警察局在0点,里面有k个警察,要将1-n的贼窝一网打尽,这1+n个点都有距离,且要求抓 i 点的贼前保证已经抓光 比i小的贼.警察们最后要回到0点,问满足抓到所以的贼(题目保证可行)最少走的路之 ...

  7. 【HDU】4411 Arrest 费用流

    传送门:[HDU]4411 Arrest 题目分析:题目的意思一开始没看懂= =...题意大致为:派出至多K个警队遵守先灭小的再灭老的的原则将N个城市的帮派全端了(要灭编号大的必须要先灭编号小的).且 ...

  8. HDU 4411最小费用流

    点击打开链接 题意:从0出发,1~N每个城镇有个小偷,我们要把他们全部抓到,我们可以派出k个警察,但是再抓i城镇的小偷之前,i城镇之前的所有城镇的小偷已经被抓了 思路:哪有什么思路,看了网上的题解,为 ...

  9. hdu 4411 最小费用流

    思路:主要就是要把一个每个城市拆为两个点,建一条容量为1,费用为-inf的边,保证每个城市都会被遍历. /*最小费用最大流*/ #include<iostream> #include< ...

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

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

最新文章

  1. Markdown 语法 示例 字体 字号 颜色
  2. 可爱的特殊字符集收集
  3. d3.js 旋转图形_几何画板第9期图形的组合型运动
  4. centos纯命令行配置java环境
  5. SLAM:ORB-SLAM 位姿优化描述
  6. python 和C语言 中的一些容易混淆的符号整理
  7. mysql复杂条件判断_MySQL复杂where条件分析
  8. Docker使用阿里云镜像加速
  9. 双链路是什么意思_双链路DVI是什么意思 工作原理是什么
  10. 出售计算机广告英文作文,英语四级作文参考范文:二手电脑广告
  11. CASH软件分析差异性可变剪接
  12. JMS之——ActiveMQ消息持久化
  13. 2021年中国农民工总量、外出农民工规模及农民工平均年龄分析[图]
  14. ssh服务器配置以及密匙登录
  15. 绝了,SpringBoot引入 Dataway,无需开发任何代码配置一个满足需求的接口!
  16. JS中对象key为数字的使用
  17. Ext.extend 与 Ext.define
  18. 追求卓越之--arm MMU详解
  19. Linux的任督二脉:进程调度和内存管理
  20. 云呐|最新酒店行业固定资产管理办法,酒店实物资产管理系统

热门文章

  1. 博弈游戏 ai JAVA_四国军棋是比较全面的下一个AI博弈游戏
  2. 运营商的“大网”怎么建? 三大运营商纷纷SDN/NFV三步走
  3. teradata 查看 表定义_teradata查询表结构,
  4. matlab绘制三维奖杯图,我是如何获得“MathorCup”奖杯与万元奖金的?
  5. 房企数据中台:核心是提高销售,客户开什么车也有用 | 地产圆桌会⑤
  6. iphone imei查询方法
  7. flask中的jsonify
  8. 视频监控各类摄像头识别
  9. 河南计算机教师资格证,2016河南教师资格证考试笔试备考:《信息技术学科知识与教学能力》(...
  10. mediapipe 眨眼检测、头部三轴姿态检测(改进版)