HDU 2579 BFS
来源:互联网 发布:mysql 5.5.36msi安装 编辑:程序博客网 时间:2024/06/07 21:11
Dating with girls(2)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2467 Accepted Submission(s): 705
Problem Description
If you have solved the problem Dating with girls(1).I think you can solve this problem too.This problem is also about dating with girls. Now you are in a maze and the girl you want to date with is also in the maze.If you can find the girl, then you can date with the girl.Else the girl will date with other boys. What a pity!
The Maze is very strange. There are many stones in the maze. The stone will disappear at time t if t is a multiple of k(2<= k <= 10), on the other time , stones will be still there.
There are only ‘.’ or ‘#’, ’Y’, ’G’ on the map of the maze. ’.’ indicates the blank which you can move on, ‘#’ indicates stones. ’Y’ indicates the your location. ‘G’ indicates the girl's location . There is only one ‘Y’ and one ‘G’. Every seconds you can move left, right, up or down.
The Maze is very strange. There are many stones in the maze. The stone will disappear at time t if t is a multiple of k(2<= k <= 10), on the other time , stones will be still there.
There are only ‘.’ or ‘#’, ’Y’, ’G’ on the map of the maze. ’.’ indicates the blank which you can move on, ‘#’ indicates stones. ’Y’ indicates the your location. ‘G’ indicates the girl's location . There is only one ‘Y’ and one ‘G’. Every seconds you can move left, right, up or down.
Input
The first line contain an integer T. Then T cases followed. Each case begins with three integers r and c (1 <= r , c <= 100), and k(2 <=k <= 10).
The next r line is the map’s description.
The next r line is the map’s description.
Output
For each cases, if you can find the girl, output the least time in seconds, else output "Please give me another chance!".
Sample Input
16 6 2...Y.....#...#.......#.....#....#G#.
Sample Output
7
模仿别人的代码
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int n,m,k,sx,sy,ex,ey;
struct haha
{
int x, y, step;
}q,temp;
char map[111][111];
int dir[4][2]={0,1,0,-1,1,0,-1,0};
int vis[111][111][11];
void BFS()
{
int i;
q.x=sx;
q.y=sy;
q.step=0;
queue<struct haha>que;
memset(vis,0,sizeof(vis));
vis[sx][sy][0]=1;
que.push(q);
while(!que.empty())
{
temp=que.front();
que.pop();
if(temp.x==ex&&temp.y==ey)
{
printf("%d\n",temp.step);
return ;
}
for(i=0;i<4;i++)
{
int xx,yy;
xx=temp.x+dir[i][0];
yy=temp.y+dir[i][1];
if(xx>=0&&xx<n&&yy>=0&&yy<m&&(map[xx][yy]!='#'||(temp.step+1)%k==0)&&!vis[xx][yy][(temp.step+1)%k])
{
q.step=temp.step+1;
q.x=xx;
q.y=yy;
vis[xx][yy][(temp.step+1)%k]=1;
que.push(q);
}
}
}
printf("Please give me another chance!\n");
}
int main()
{
int i,j,cas;
scanf("%d",&cas);
while(cas--)
{
scanf("%d %d %d",&n,&m,&k);
for(i=0;i<n;i++)
{
scanf("%s",map[i]);
for(j=0;j<m;j++)
{
if(map[i][j]=='Y') {sx=i;sy=j;}
else if(map[i][j]=='G') {ex=i;ey=j;}
}
}
BFS();
}
return 0;
}
#include<cstring>
#include<queue>
using namespace std;
int n,m,k,sx,sy,ex,ey;
struct haha
{
int x, y, step;
}q,temp;
char map[111][111];
int dir[4][2]={0,1,0,-1,1,0,-1,0};
int vis[111][111][11];
void BFS()
{
int i;
q.x=sx;
q.y=sy;
q.step=0;
queue<struct haha>que;
memset(vis,0,sizeof(vis));
vis[sx][sy][0]=1;
que.push(q);
while(!que.empty())
{
temp=que.front();
que.pop();
if(temp.x==ex&&temp.y==ey)
{
printf("%d\n",temp.step);
return ;
}
for(i=0;i<4;i++)
{
int xx,yy;
xx=temp.x+dir[i][0];
yy=temp.y+dir[i][1];
if(xx>=0&&xx<n&&yy>=0&&yy<m&&(map[xx][yy]!='#'||(temp.step+1)%k==0)&&!vis[xx][yy][(temp.step+1)%k])
{
q.step=temp.step+1;
q.x=xx;
q.y=yy;
vis[xx][yy][(temp.step+1)%k]=1;
que.push(q);
}
}
}
printf("Please give me another chance!\n");
}
int main()
{
int i,j,cas;
scanf("%d",&cas);
while(cas--)
{
scanf("%d %d %d",&n,&m,&k);
for(i=0;i<n;i++)
{
scanf("%s",map[i]);
for(j=0;j<m;j++)
{
if(map[i][j]=='Y') {sx=i;sy=j;}
else if(map[i][j]=='G') {ex=i;ey=j;}
}
}
BFS();
}
return 0;
}
0 0
- hdu 2579 BFS
- HDU 2579 BFS
- HDU 2579 BFS
- HDU bfs
- HDU 2579 Dating with girls(2) BFS
- HDU 2579 Dating with girls(2)(BFS)
- HDU 2579 Dating with girls(2) (BFS)
- hdu 2579 Dating with girls(2)【bfs】
- HDU 2579/BFS/ Dating with girls(2)
- hdu 1175 bfs
- HDU 1072(BFS)
- HDU 1429(BFS )
- hdu 1026(BFS)
- HDU 4039 BFS
- hdu 1312 bfs
- hdu 1253 三维bfs
- hdu 1242 bfs
- BFS hdu 1072 Nightmare
- week7---10月23日 DIV布局定位(一)
- 【软件工程】UML 统一建模语言
- 修复引导mbrfix
- java线程池的作用
- 你不知道的JavaScript--Item18 JScript的Bug与内存管理
- HDU 2579 BFS
- mybatis(4)输入映射
- idea发布项目到get
- iOS小技巧
- Golang import 包问题相关详解
- Mac分区失败导致出现隐藏分区的解决办法
- 机器学习基石 作业3 Logistic回归/线性回归/特征转换
- 【Android效果集】下雨效果
- LeetCode 25: Reverse Nodes in k-Group