题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1533

#include<bits/stdc++.h>
#define fi first
#define se second
#define INF 0x3f3f3f3f
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define pqueue priority_queue
#define NEW(a,b) memset(a,b,sizeof(a))
const double pi=4.0*atan(1.0);
const double e=exp(1.0);
const int maxn=1e6+8;
typedef long long LL;
typedef unsigned long long ULL;
const LL mod=1e9+7;
const ULL base=1e7+7;
using namespace std;
struct edge{int to,nxt,flow,cost;
}g[maxn];
int head[10008],pre[10008],dis[10008],cnt,s,t,tot;
int a[108][108];
bool vis[10008];
char ss[108];
void add(int x,int y,int cost,int flow){g[cnt].to=y;g[cnt].nxt=head[x];g[cnt].cost=cost;g[cnt].flow=flow;head[x]=cnt++;
}
bool spfa(){memset(pre,-1,sizeof(pre));memset(dis,INF,sizeof(dis));memset(vis,0,sizeof(vis));queue<int> que;while(!que.empty()){que.pop();}que.push(s);dis[s]=0;vis[s]=1;while(!que.empty()){int k=que.front();que.pop();vis[k]=0;int tt=head[k];while(tt!=-1){if(dis[g[tt].to]>dis[k]+g[tt].cost&&g[tt].flow>0){pre[g[tt].to]=tt;dis[g[tt].to]=dis[k]+g[tt].cost;if(vis[g[tt].to]==0){que.push(g[tt].to);vis[g[tt].to]=1;}}tt=g[tt].nxt;}}return pre[t]!=-1;
}
int maxflow(){int ans=0;while(spfa()){int f=INF;for(int i=pre[t];i!=-1;i=pre[g[i^1].to]){if(g[i].flow<f)f=g[i].flow;}for(int i=pre[t];i!=-1;i=pre[g[i^1].to]){g[i].flow-=f;g[i^1].flow+=f;ans+=g[i].cost*f;}}return ans;
}
int main(){int n,m;while(scanf("%d%d",&n,&m)!=EOF&&n&&m){memset(head,-1,sizeof(head));cnt=tot=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)a[i][j]=tot++;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(j!=m){add(a[i][j],a[i][j+1],1,INF);add(a[i][j+1],a[i][j],-1,0);add(a[i][j+1],a[i][j],1,INF);add(a[i][j],a[i][j+1],-1,0);}if(i!=n){add(a[i][j],a[i+1][j],1,INF);add(a[i+1][j],a[i][j],-1,0);add(a[i+1][j],a[i][j],1,INF);add(a[i][j],a[i+1][j],-1,0);}}}s=tot++;t=tot++;for(int i=1;i<=n;i++){scanf("%s",ss);for(int j=0;j<m;j++){if(ss[j]=='H'){add(a[i][j+1],t,0,1);add(t,a[i][j+1],0,0);}if(ss[j]=='m'){add(s,a[i][j+1],0,1);add(a[i][j+1],s,0,0);}}}printf("%d\n",maxflow());}
}

转载于:https://www.cnblogs.com/Profish/p/9817791.html

最小费用最大流 HDU1533相关推荐

  1. Going Home HDU - 1533 (最小费用最大流)

    题目链接:https://cn.vjudge.net/problem/HDU-1533 题意:给你n个房子n个人  使得所有人都有一座房子的最小花费 思路:把所有的人与房子建边,最后,源点与所有的人建 ...

  2. 乌鲁木齐网络赛J题(最小费用最大流模板)

    ACM ICPC 乌鲁木齐网络赛 J. Our Journey of Dalian Ends 2017-09-09 17:24 243人阅读 评论(0) 收藏 举报  分类: 网络流(33)  版权声 ...

  3. POJ - 2516 Minimum Cost 最小费用最大流

    题目链接 题意:给n,m,k表示商店数,储存店数,种类数 然后给n*k表示每个水果店需求每种种类的数量: 表示成 need[i][j] 再给m*k表示每个储存店每种种类数量: 表示成store[i][ ...

  4. pku The Windy's KM最小权匹配 or 最小费用最大流

    http://poj.org/problem?id=3686 题意: 给定n个玩具,有m个车间,给出每个玩具在每个车间的加工所需的时间mat[i][j]表示第i个玩具在第j个车间加工所需的时间,规顶只 ...

  5. c语言最小费用流_策略算法工程师之路-图优化算法(一)(二分图amp;最小费用最大流)...

    目录 1.图的基本定义 2.双边匹配问题 2.1 二分图基本概念 2.2 二分图最大匹配求解 2.3 二分图最优匹配求解 2.4 二分图最优匹配建模实例 2.4.1 二分图最优匹配在师生匹配中的应用 ...

  6. 有源汇上下界最小费用可行流 ---- P4553 80人环游世界(拆点 + 有源汇上下界最小费用可行流)

    题目链接 题目大意: 解题思路: 又是一道裸题 . 首先它要求第iii个点只经过ViViVi那么我们就拆点ai,ai+na_i,a_{i+n}ai​,ai+n​一个点为入点,一个为出点这条边的流量范围 ...

  7. 有源汇上下界最小费用可行流 ---- P4043 [AHOI2014/JSOI2014]支线剧情(模板)

    题目链接 题目大意: 解题思路: 有源汇上下界最小费用可行流模板题目来着 先建出一个有源汇上下界可行流的图,然后注意建图的时候要把每条边的下界的费用提前加到ans里面 然后再对图跑费用流,就是补齐费用 ...

  8. Doctor NiGONiGO’s multi-core CPU(最小费用最大流模板)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=693 题意:有一个 k 核的处理器和 n 个工作,全部的工作都须要在一个核上处理一个单位的 ...

  9. 【最小费用最大流】Going Home

    概念: 在同一个网络中,可能存在多个总流量相同的最大流,我们可以在计算流量的基础之上,给网络中的弧增加一个单位流量的费用(简称费用),在确保流量最大的前提下总费用最小--最小费用最大流. C - Go ...

  10. 最大流最小费用java_最小费用最大流及算法

    最大流的网络,可看作为辅送一般货物的运输网络,此时,最大流问题仅表明运输网络运输货物的能力,但没有考虑运送货物的费用.在实际问题中,运送同样数量货物的运输方案可能有多个,因此从中找一个输出费用最小的的 ...

最新文章

  1. 登上更高峰!颜水成、程明明团队开源ViP,引入三维信息编码机制,无需卷积与注意力...
  2. mysql slave lock 跳过_处理 MySQL 因为 SLAVE 崩溃导致需要手动跳过 GTID 的问题 | 关于 GTID...
  3. hashtable——散列表
  4. Mvp快速搭建商城购物车模块
  5. Yii 2.0: yii2-highcharts-widget创建饼状图
  6. 面试官:如何实现 List 集合去重?
  7. 流放之路材质过滤怎么设置_松下除湿机怎么样 松下除湿机款式有哪些型号【详解】...
  8. Spring学习总结(1)- IOC
  9. ajax主要有哪些方法,ajax的使用方法和原理,ajax包括哪些技术呢
  10. XMLHTTP使用详解
  11. SpringBoot中级篇-打包-第三方jar包
  12. 机器学习-百度笔试题
  13. java HTML转PDF实现
  14. 使用cs与msf进行内网横向移动
  15. 如何获取手机根目录和sdcard的根目录
  16. 8款最好用的固定资产管理软件
  17. web3:颠覆互联网还是白日梦一场?
  18. 牛客网项目 1.5Mybatis入门
  19. 幼师资格证计算机考试内容,考幼师资格证需要什么条件及考试内容
  20. deepin美化,conky使用教程

热门文章

  1. 企业级高速、高匿爬虫代理IP、千万IP出口池
  2. 死机,断电,Excel未来得及保存?Excel文件恢复来帮你!
  3. 【Spring Cloud Alibaba】(一)微服务介绍 及 Nacos注册中心实战
  4. 华为OD机试 - 简易压缩算法(Python) | 机试题+算法思路+考点+代码解析 【2023】
  5. 从BOM看MRP与APS
  6. 模块化多电平换流器(MMC)matlab完整仿真模型,包括电压均衡和电流抑制控制;换流器小信号建模,风机光伏直流等电磁暂态建模、机电暂态建模均有相关模型
  7. 西门子PLC1200博途V16程序画面例程,具体项目工艺为制药厂生物发酵系统,程序内有报警,模拟量标定处理,温度PID,称重仪表USS通讯和基本的各种数字量控制
  8. 利用ucloud自带工具管理对象存储
  9. 优傲机器人TCP通讯
  10. 深入认识笔记本电脑的网卡