http://poj.org/problem?id=3026

如果一个一个普通搜处理不好的话会超时  可以连到一块搜

我觉得这个方法特别好

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<queue>
#include<algorithm>
#define N 105
#define INF 0x3f3f3f3f
using namespace std;
int dis[][]={{,},{-,},{,},{,-}};
int G[N][N],d[N],vis[N][N],m,n,v[N],b[N][N];
char F[N][N];
struct node
{
int x,y,temp;
}a; void Inn()
{
int i,j;
for(i=;i<=N;i++)
{
d[i]=INF;
for(j=;j<=N;j++)
G[i][j]=INF;
}
memset(b,,sizeof(b));
memset(F,,sizeof(F));
} void bfs(int s,int x,int y)
{
int i;
memset(vis,,sizeof(vis));
queue<node>Q;
a.x=x;
a.y=y;
a.temp=;
Q.push(a);
vis[a.x][a.y]=;
while(Q.size())
{
node q,p;
q=Q.front();
Q.pop();
if(F[q.x][q.y]=='A' || F[q.x][q.y]=='S')
G[s][b[q.x][q.y]]=q.temp;
for(i=;i<;i++)
{
p.x=q.x+dis[i][];
p.y=q.y+dis[i][]; if(F[p.x][p.y]!='#' && p.x<m&&p.y<n&&p.x>=&&p.y>=&&!vis[p.x][p.y])
{
p.temp=q.temp+;
Q.push(p);
vis[p.x][p.y]=;
}
}
}
} int prim(int k)
{
memset(v,,sizeof(v));
int i,j,ans=;
for(i=;i<=k;i++)
{
d[i]=G[][i];
}
v[]=;
for(i=;i<k;i++)
{
int Min=INF;
int dist;
for(j=;j<=k;j++)
{
if(!v[j] && d[j]<Min)
{
Min=d[j];
dist=j;
}
}
v[dist]=;
ans+=Min;
for(j=;j<=k;j++)
{
if(!v[j] && d[j]>G[dist][j])
d[j]=G[dist][j];
}
}
return ans;
} int main()
{
int T,i,j;
scanf("%d",&T);
while(T--)
{
scanf("%d %d ",&n,&m);
Inn();
int k=;
for(i=;i<m;i++)
{
for(j=;j<n;j++)
{
scanf("%c",&F[i][j]);
if(F[i][j]=='A' || F[i][j]=='S')
{
b[i][j]=k;
k++;
}
}
getchar();
}
for(i=;i<m;i++)
{
for(j=;j<n;j++)
{
if(F[i][j]=='A' || F[i][j]=='S')
bfs(b[i][j],i,j);
}
}
printf("%d\n",prim(k-));
}
return ;
}

Borg Maze-POJ3026(bfs+最小生成树)的更多相关文章

  1. POJ 3026 Borg Maze(bfs+最小生成树)

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6634   Accepted: 2240 Descrip ...

  2. POJ 3026 Borg Maze【BFS+最小生成树】

    链接: http://poj.org/problem?id=3026 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...

  3. POJ 3026 --Borg Maze(bfs,最小生成树,英语题意题,卡格式)

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16625   Accepted: 5383 Descri ...

  4. POJ3026 Borg Maze(Prim)(BFS)

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12729   Accepted: 4153 Descri ...

  5. Borg Maze(MST & bfs)

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9220   Accepted: 3087 Descrip ...

  6. POJ 3026 : Borg Maze(BFS + Prim)

    http://poj.org/problem?id=3026 Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...

  7. Borg Maze(BFS+MST)

    Borg Maze http://poj.org/problem?id=3026 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...

  8. POJ3026——Borg Maze(BFS+最小生成树)

    Borg Maze DescriptionThe Borg is an immensely powerful race of enhanced humanoids from the delta qua ...

  9. 快速切题 poj 3026 Borg Maze 最小生成树+bfs prim算法 难度:0

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8905   Accepted: 2969 Descrip ...

  10. POJ3026:Borg Maze (最小生成树)

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18644   Accepted: 5990 题目链接:h ...

随机推荐

  1. win应用只允许单个实例运行,并将已运行实例窗口置顶

    关键词:windows,c++,桌面应用,单个实例,窗口置顶 目标:1.判断本程序是否已有一个实例在运行.2.若有,则激活已在运行的实例(将其窗口置顶),并退出当前运行. 1.使用semaphore来 ...

  2. SQL系列学习 存储过程&事物语法

    /*学习事物基本语法*/ /*增加课室名的唯一索引*/ ALTER table class add constraint uni_ClassName unique(name) /*创建存储过程,其中增 ...

  3. 洛谷 P1030 求先序排列

    题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序 ...

  4. EXPLAIN - 显示语句执行规划

    SYNOPSIS EXPLAIN [ ANALYZE ] [ VERBOSE ] statement DESCRIPTION 描述 这条命令显示PostgreSQL规划器为所提供的语句生成的执行规划. ...

  5. iview modal 点击打开窗口,打开前先销毁里面的内容再打开

    <Modal v-model="addSubOrgModal" @on-cancel="addSubOrgCancel" @on-visible-chan ...

  6. Unity整合Asp.Net MVC

    先来看一下我们的解决方案 我们建立Yubay.Models项目, using System; using System.Collections.Generic; using System.Data.E ...

  7. Android项目源码分享

    http://blog.csdn.net/gao_chun/article/details/47263063 Android项目源码分享 给大家分享几个Android开发项目源码,大部分功能相信可以在 ...

  8. INFORMATION_SCHEMA InnoDB 表

    INFORMATION_SCHEMA InnoDB Tables 本节提供InnoDB INFORMATION_SCHEMA表的表定义. 有关相关信息和示例,请参见"InnoDB INFOR ...

  9. PXE自动化安装系统

    准备(以centos7为例) ①关闭防火墙 ②关闭selinux ③dhcp服务设置为静态IP ④安装软件包 http:充当yum源安装包仓库 tftp-server :在它的工作目录存在引导主机的工 ...

  10. nginx 配置虚拟主机访问PHP文件 502错误的解决方法

    最近配置Nginx 服务器虚拟主机 访问目录发现报502错误 百度了很多方法 都不管用  我擦 各种抓狂----- 原本Nginx配置如下: 网上找了很多方法: 查看日志   借助nginx的错误日志 ...