博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(网络流 匹配 KM) Going Home --poj -- 2195
阅读量:6587 次
发布时间:2019-06-24

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

链接:

 

 

有n个人有n栋房子,每栋房子里能进一个人,但每走一格的价值是1, 所以要尽可能的少走,这一看很显然是匹配用KM算法,

但这是网络流专题的,不是太懂怎么用网络流来写

 

代码:

#include
#include
#include
#include
#include
using namespace std;#define N 110#define INF 0x3fffffffstruct node{
int x, y, step;};char G[N][N];int n, m1, dir[4][2]={
{-1,0},{
1,0},{
0,-1},{
0,1}};int STEP[N][N], m[N][N], H[N][N], vis[N][N];int num1, num2, lx[N], ly[N];int used[N], visx[N], visy[N], s[N];void BFS(node p){ node q, t; queue
Q; Q.push(p); memset(vis, 0, sizeof(vis)); vis[p.x][p.y] = 1; while(Q.size()) { q = Q.front(); Q.pop(); if(G[q.x][q.y]=='H') STEP[m[p.x][p.y]][H[q.x][q.y]] = -q.step; for(int i=0; i<4; i++) { t.x = q.x + dir[i][0]; t.y = q.y + dir[i][1]; t.step = q.step + 1; if(t.x>=0 && t.x
=0 && t.y

 

粘个别人的代码:

#include
#include
#include
#include
#include
#include
using namespace std;const int MAXN = 407;const int oo = 1e9+7;struct point{ int x, y;}man[MAXN], house[MAXN];struct Graph{ int flow, cost;}G[MAXN][MAXN];int NX, NY, start, End;///男人和房子的数目,源点和汇点bool spfa(int pre[]){ stack
sta; int instack[MAXN]={ 0}, dist[MAXN]; for(int i=1; i<=End; i++) dist[i] = oo; dist[start] = 0; sta.push(start); while(sta.size()) { int u = sta.top();sta.pop(); instack[u] = false; for(int i=1; i<=End; i++) { if(G[u][i].flow && dist[i] > dist[u]+G[u][i].cost) { dist[i] = dist[u] + G[u][i].cost; pre[i] = u; if(instack[i] == false) { sta.push(i); instack[i] = true; } } } } return dist[End] != oo;}int MinCost(){ int i, pre[MAXN], cost=0; while(spfa(pre) == true) { ///如果有增广路 int MinFlow = oo; for(i=End; i != start; i=pre[i]) MinFlow = min(MinFlow, G[pre[i]][i].flow); for(i=End; i != start; i=pre[i]) { ///逆向访问这条增广路上的每条边 int k = pre[i]; G[k][i].flow -= MinFlow; G[i][k].flow += MinFlow; cost += G[k][i].cost; } } return cost;}int main(){ int M, N; while(scanf("%d%d", &M, &N), M+N) { int i, j;char s[MAXN][MAXN]; memset(G, 0, sizeof(G)); NX = NY = 0; for(i=0; i

 

转载于:https://www.cnblogs.com/YY56/p/4728036.html

你可能感兴趣的文章
AP INVOICES IMPORT API(NOT request)
查看>>
怎样面试程序猿
查看>>
Redhat6.5安装DB2 Express-C版本
查看>>
php的http数据传输get/post...
查看>>
【剑指Offer面试题】 九度OJ1368:二叉树中和为某一值的路径
查看>>
checkbox的name与JavaBean的交互时发现的一个现象
查看>>
基于Token的身份验证——JWT(转)
查看>>
Maven(五)之Maven配置阿里云镜像飞快下jar包
查看>>
Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解
查看>>
script 里写 html 模版
查看>>
vue2.0 + vux (三)MySettings 页
查看>>
ASP.NET Core 使用 Alipay.AopSdk.Core 常见问题解答
查看>>
spring @Value 设置默认值
查看>>
带你从零学ReactNative开发跨平台App开发(十一)
查看>>
java 生成zip文件并导出
查看>>
atitit.userService 用户系统设计 v4 q316 .doc
查看>>
1224 - 搞定 iText 识别文字后翻译
查看>>
《iOS 8开发指南(第2版)》——第6章,第6.3节在Xcode中实现MVC
查看>>
机器人快速崛起:5年内消失510万工作岗位
查看>>
内存泄漏和内存溢出的区别
查看>>