UVA784--dfs
2017-07-26 15:16
387 查看
题意:
题目故意扯了很长,其实总结起来就一句话,能跟符号‘*’接触到的空白区域全部转换成‘#’,包括‘*’本身,“#”是墙不能跨过去。
#include<iostream>
#include<cstring>
using namespace std;
char maze[40][90];
int dy[]={0,0,-1,1};
int dx[]={1,-1,0,0};
void dfs(int y,int x){
if(maze[y][x]=='X') return;
for(int i=0;i<4;i++){
int ny=y+dy[i];
int nx=x+dx[i];
if(maze[ny][nx]==' ') {
maze[ny][nx]='#';
dfs(ny,nx);
}
}
}
int main()
{
int t;
cin>>t;
getchar();
while(t--){
int i=0;
memset(maze,' ',sizeof(maze));
while(1){
gets(maze[i]);
if(maze[i][0]=='_')
break; i++;
}
for(int j=0;j<i;j++){
int k=0;
while(maze[j][k++]!='\0'){
if(maze[j][k]=='*') {
maze[j][k]='#';
dfs(j,k);
}
}
}
int jj=0;
while(jj<=i)
puts(maze[jj++]);
}
return 0;
}
题目故意扯了很长,其实总结起来就一句话,能跟符号‘*’接触到的空白区域全部转换成‘#’,包括‘*’本身,“#”是墙不能跨过去。
#include<iostream>
#include<cstring>
using namespace std;
char maze[40][90];
int dy[]={0,0,-1,1};
int dx[]={1,-1,0,0};
void dfs(int y,int x){
if(maze[y][x]=='X') return;
for(int i=0;i<4;i++){
int ny=y+dy[i];
int nx=x+dx[i];
if(maze[ny][nx]==' ') {
maze[ny][nx]='#';
dfs(ny,nx);
}
}
}
int main()
{
int t;
cin>>t;
getchar();
while(t--){
int i=0;
memset(maze,' ',sizeof(maze));
while(1){
gets(maze[i]);
if(maze[i][0]=='_')
break; i++;
}
for(int j=0;j<i;j++){
int k=0;
while(maze[j][k++]!='\0'){
if(maze[j][k]=='*') {
maze[j][k]='#';
dfs(j,k);
}
}
}
int jj=0;
while(jj<=i)
puts(maze[jj++]);
}
return 0;
}
相关文章推荐
- uva 784 Maze Exploration(简单dfs)
- UVA - 784 Maze Exploration (简单dfs)
- uva 784 Maze Exploration(简单dfs)
- uva 784 Maze Exploration(DFS遍历图)
- uva 784 Maze Exploration(迷宫探索) —— DFS
- UVA784_Maze Exploration(DFS)
- UVA 784-Maze Exploration(dfs)
- UVa 784 Maze Exploration(DFS)
- uva 784 Maze Exploration 染色 搜索水题 DFS
- UVa784 Maze Exploration(DFS)
- uva 784 Maze Exploration 染色 搜索水题 DFS
- UVa 784 - Maze Exploration//DFS
- UVA 784 - Maze Exploration(简单DFS)
- UVA 784 Maze Exploration (DFS || 种子填充)
- uva 784(dfs)
- Maze Exploration UVA - 784 (DFS)
- UVA 784(dfs填充房间)
- uva 784(dfs)
- UVa 208 - Firetruck(DFS判连通+回溯)
- UVa 784 Maze Exploration