http://acm.hdu.edu.cn/showproblem.php?pid=1312
方法一:广度优先搜索。
利用队列“先进先出FIFO”的特点(本例用数组queue和标记L等效一个队列),距离起点越近越先被搜索,适合计算消费与距离成比例的问题。
#include<stdio.h>
#define N 22
int flag[N][N],W,H,count,L,i,j;
int dir[4][2]={0,1,1,0,0,-1,-1,0};
struct node
{
int x,y;
}next,queue[N*N];
void BFS(int x,int y)
{
queue[0].x=x;
queue[0].y=y;
count++;L++;
for(i=0;i<L;i++)
{
for(j=0;j<4;j++)
{
next.x=queue[i].x+dir[j][0];
next.y=queue[i].y+dir[j][1];
if(flag[next.x][next.y]==0&&next.x>=0&&next.x<W&&next.y>=0&&next.y<H)
{
count++;
flag[next.x][next.y]=1;
queue[L].x=next.x;
queue[L++].y=next.y;
}
}
}
}
int main()
{
int x,y;
char t;
while(scanf("%d%d",&W,&H),W||H)
{
count=0;L=0;
for(i=0;i<H;i++)
{
getchar();
for(j=0;j<W;j++)
{
scanf("%c",&t);
if(t=='.')
flag[j][i]=0;
if(t=='#')
flag[j][i]=1;
if(t=='@)
{
x=j;
y=i;
flag[j][i]=1;
}
}
}
BFS(x,y);
printf("%d\n",count);
}
return 0;
}
方法二:深度优先搜索。
通过递归调用系统栈,利用栈“先进后出FILO”的特点,对一个方向搜索到底后逐步向上回溯。
#include<stdio.h>
#define N 25
int flag[N][N],count,W,H;
int dir[4][2]={1,0, 0,1, -1,0, 0,-1};
void DFS(int x,int y)
{
int next_x,next_y,i;
for(i=0;i<4;i++)
{
next_x=x+dir[i][0];
next_y=y+dir[i][1];
flag[y][x]=1;
if(flag[next_y][next_x]==0&&next_x>=0&&next_x<W&&next_y>=0&&next_y<H)
{
count++;
DFS(next_x,next_y);
}
}
}
int main()
{
int i,j,x,y;
char t;
while(scanf("%d%d",&W,&H),W||H)
{
for(i=0;i<H;i++)
{
getchar();
for(j=0;j<W;j++)
{
scanf("%c",&t);
if(t=='.')
flag[i][j]=0;
if(t=='#')
flag[i][j]=1;
if(t=='@)
{
x=j;
y=i;
count=1; //注意count初始化一定不要放在dfs函数中,否则递归调用时会不停初始化
}
}
}
DFS(x,y);
printf("%d\n",count);
}
return 0;
}
分享到:
相关推荐
HUD(抬头显示系统)是将外界信息、车况信息等行车关键信息进行融合,通过视觉效果传递实现与驾驶员进行深度人机交互的一套显示系统。市场上,不同品牌及车型HUD显示的内容有着很大的差异。有些车型只显示车速信息,...
Zemax软件设计的HUD光路,抬头显示系统(Head Up Display,HUD)也称为平视显示系统。HUD技术是20世纪60 年代在光学瞄准和雷达瞄准基础上发展起来的,最早应用在战斗机上,HUD可以将重要的信息,如速度、油量、转速...
hud3001源代码
基于osg Camera 实现hud菜单。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
ios hud 提示框
hud unity3d ugui
微信小程序 HUD
一款支持支持自定义的轻量级HUD,支持垂直、水平两种样式。SVProgressHUD非常灵活,所见的部分都可根据自己的要求进行自定义,包括自义动画效果或图片,只需要实现相关协议方法。 安装使用 pod 'XNProgressHUD' ...
unity插件 HUD Navigation System最新版本 支持小地图 HUD等功能有点效率高 体积小巧。
最新版本ugui hudtext 1.41,官网同步的最新,里面包含资源及例子,值得拥有
UGUI的HUD,用法和NGUI的一样简单.
NGUI: HUD Text Copyright 漏 2012-2014 Tasharen Entertainment Version 1.11 http://www.tasharen.com/forum/index.php?topic=997.0 -------------------------------------------------- Thank you for ...
汽车HUD光学系统.pptx
SAE J1757-2_201811 Standard - Optical System HUD for Automotive汽车光学系统HUD标准
UGUI HUD Text
HUD标定模式增加两个状态.doc
OSG中hud的使用方法与示例代码。需要借助OSG三维库。
2D控件与3D模型的完善结合,NGUI HUD需要NGUI的支持,项目中需要先导入NGUI否则HUD可不能使用的
Unity3d HUD waypoint 1.0.3 class
hud