UVa 784 Maze Exploration

1618 단어 uva784
제목: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=725
이 문제 도 굉장히 누 드 dfs 입 니 다.
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;

char map[40][90];
int line,len[40];//     、       

void dfs(int i,int j)
{
	map[i][j]='#';
	int dir[4][2]={-1,0,0,-1,0,1,1,0};
	for(int k=0;k<4;k++)
	{
		int nexti=i+dir[k][0],nextj=j+dir[k][1];
		if(map[nexti][nextj]==' ')
			dfs(nexti,nextj);
	}
}
void print()
{
	for(int i=0;i<line;i++)
	{
		for(int j=0;j<len[i];j++)
			cout<<map[i][j];
		cout<<'
'; } } int main() { //freopen("in.txt","r",stdin); int i,j,n,starti,startj; string str; cin>>n; getchar(); while(n--) { i=0; while(getline(cin,str)&&str[0]!='_') { len[i]=str.length(); for(j=0;j<len[i];j++) { if(str[j]=='*') { starti=i; startj=j; } map[i][j]=str[j]; } i++; } line=i; dfs(starti,startj); print(); cout<<str<<endl;// } return 0; }

좋은 웹페이지 즐겨찾기