POJ 3026 Borg Maze(kuangbin带你飞 专题六:最小生成树,完结)

这篇博客介绍了如何解决POJ 3026的Borg Maze问题,通过构建迷宫的最小生成树来连接所有A和S。作者通过为每个点编号并使用BFS遍历建立边,然后应用最小生成树算法。在解决问题的过程中,作者遇到了初始化问题导致的调试困难,最终解决了问题。此外,博主提醒在处理输入时要注意getchar可能会因空格导致错误,建议使用gets函数。
摘要由CSDN通过智能技术生成

没看题,直接看了样例,大概意思就是给了一张迷宫吧,要把所有的A和S全部链接起来需要的最小边权...就是求最小生成树....but...,边的顶点和距离完全要自己解决...顶点编号直接从在图上跑了一遍给编了序号1-k,代表第几个点,-1代表墙,0代表可走的地方,对每个点进行一次bfs,并且在bfs过程中建立这个点对其他点的边..最后跑完最小生成树就行了.

不得不说调试了好久...以为是bfs写搓了,原来是初始化被我一直忘记了.....专题六已经完结...撒花庆祝

PS:注意输入m n后getchar吃掉换行貌似会错,因为我调试的时候发现那个输入有错...就直接用了gets,可能是因为mn后有空格?

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<algorithm>
#include<iostream>
using namespace std;
int map[60][60];
int used[60][60],n,m,p;
int f[2000];
struct node
{
    int x,y,t;
}e[20000];
int cmp(node a,node b)
{
    return a.t<b.t;
}
void inti()
{
    for(int i=1;i<=300;i++)
        f[i]=i;
}
int find(int x)
{
    if(x!=f[x])
        return f[x]=find(f[x]);
    return x;
}
int d[4][2]={1,0,-1,0,0,-1,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值