有几个错误,调试了几个小时,样例过后 1Y.

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

题意:就是让求A们和S的最小生成树

先用bfs找每两点的距离,再建树。没剪枝 63MS。

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<stack>
#include<queue>
#include<cmath>
#include<algorithm>
using namespace std; char G[][];
int dx[]={,,,-};
int dy[]={,-,,};
int r,c,bin[],an,ff[][]; //an表示边数
struct node
{
int x,y;
}e[]; //表示点 struct tree
{
int u,v,w;
}q[];//边及权值 struct point
{
int x,y,step;
}next,pos;//bfs 里的队列 void add(int u,int v,int w)//加边
{
q[an].u=u; q[an].v=v; q[an++].w=w;
} void bfs(int f,int x,int y)
{
int vis[][],i;
queue<point>qu;
memset(vis,,sizeof(vis));
next.x=x; next.y=y; next.step=;
qu.push(next);
vis[x][y]=;
while(!qu.empty())
{
pos=qu.front();
qu.pop();
for(i=; i<; i++)
{
next.x=pos.x+dx[i]; next.y=pos.y+dy[i]; next.step=pos.step+;
if(next.x>= && next.x<r && next.y>= && next.y<c && vis[next.x][next.y]== && G[next.x][next.y]!='#')
{
vis[next.x][next.y]=;
qu.push(next);
if(G[next.x][next.y]=='A'||G[next.x][next.y]=='S')
add(f,ff[next.x][next.y],next.step);
}
}
}
}
int cmp(const void *a,const void *b)
{
return (*(tree *)a).w-(*(tree *)b).w;
}
int find(int a)
{
if(a==bin[a])
return a;
else
bin[a]=find(bin[a]);
};
int main()
{
int t,cnt,i,j,x,y,num,sum;//cnt表示点的个数
char str[];
cin>>t;
while(t--)
{
sum=; num=; an=;
cin>>c>>r;
gets(str);
for(i=; i<r; i++)
gets(G[i]); cnt=;
for(i=; i<r; i++)
for(j=; j<c; j++)
if(G[i][j]=='S'||G[i][j]=='A')
{
ff[i][j]=cnt;
e[cnt].x=i; e[cnt++].y=j;
} for(i=; i<cnt; i++)
{
bfs(i,e[i].x,e[i].y);
} for(i=; i<cnt; i++)
bin[i]=i;
qsort(q,an,sizeof(q[]),cmp);
for(i=; i<=an-; i++)
{
x=find(q[i].u); y=find(q[i].v);
if(x!=y)
{
sum+=q[i].w;
num++;
bin[x]=y;
}
if(num==cnt-)
break;
}
printf("%d\n",sum);
}
}

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

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

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8905   Accepted: 2969 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: 6634   Accepted: 2240 Descrip ...

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

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

  5. poj 3026 Borg Maze 最小生成树 + 广搜

    点击打开链接 Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7097   Accepted: 2389 ...

  6. poj 3026 Borg Maze (BFS + Prim)

    http://poj.org/problem?id=3026 Borg Maze Time Limit:1000MS     Memory Limit:65536KB     64bit IO For ...

  7. POJ - 3026 Borg Maze BFS加最小生成树

    Borg Maze 题意: 题目我一开始一直读不懂.有一个会分身的人,要在一个地图中踩到所有的A,这个人可以在出发地或者A点任意分身,问最少要走几步,这个人可以踩遍地图中所有的A点. 思路: 感觉就算 ...

  8. poj 3026 Borg Maze (bfs + 最小生成树)

    链接:poj 3026 题意:y行x列的迷宫中,#代表阻隔墙(不可走).空格代表空位(可走).S代表搜索起点(可走),A代表目的地(可走),如今要从S出发,每次可上下左右移动一格到可走的地方.求到达全 ...

  9. POJ 3026 Borg Maze (最小生成树)

    Borg Maze 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/I Description The Borg is an im ...

随机推荐

  1. 利用WeX5集成百度地图

    最近做一个地图类的app经过几天的摸索,终于完成百度地图集成的界面先看效果:1.加载完成之后,页面加载制定位置的地图2.顶部能够输入地图的关键字,地图显示符合条件的下拉列表3.用户选择了相应的选项后, ...

  2. webpack+react+jquery和jquery插件

    要引入jquery插件 全局引入jquery plugins : [new webpack.ProvidePlugin({ $: 'jquery', jQuery:'jquery' "win ...

  3. 谈谈C语言的数据类型

    本文摘要: 本文主要讲述C语言中的数据类型,从基本的数据类型到派生的数据类型,从int ,char ,float double ....到指针,数组,函数,指向指针的指针,指向数组的指针,指向函数的指 ...

  4. aix 安装redis

    下载最新rpm安装包 http://www.perzl.org/aix/index.php?n=Main.Redis # uname -aAIX rhjf 1 6 00C5CC964C00# pwd/ ...

  5. Spark Streaming揭秘 Day28 在集成开发环境中详解Spark Streaming的运行日志内幕

    Spark Streaming揭秘 Day28 在集成开发环境中详解Spark Streaming的运行日志内幕 今天会逐行解析一下SparkStreaming运行的日志,运行的是WordCountO ...

  6. CentOS7安装性能监控系统

    目录 系统描述. 开发环境. 开始之前. 安装influxdb数据库. 安装collectd 安装Grafana FAQ       influxdb的web界面没反应.   系统描述 想打造 New ...

  7. [gradle] is applicable for argument types

    error: is applicable for argument types: (org.eclipse.jetty.server.Request) 很显然这个错误是因为 不是静态方法造成的,改为静 ...

  8. 【cheerio】nodejs的抓取页面模块

    http://baike.baidu.com/link?url=8V1CZsEzNE05ujOzISquom_pvFj16sWu1rRb8js11pmd9HNq7ePW_aKfG9oyXj6Txuu5 ...

  9. POJ 2151 概率DP

    主要的子问题是每一个队伍有一个做出题目的概率,求做出k个题目的概率.简单的简单的组合数DP.想清楚即可. 1: #include <iostream> 2: #include <cs ...

  10. Hibernate从入门到精通(五)一对一单向关联映射

    上次的博文中Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来我们会讲稍微复杂点的映射——关系映射. 关系映射分类 关系映射即在基本映射的基础上处理多个相关对象和 ...