这道题看上去非常麻烦,什么迷宫啊。门之类的,事实上挺简单的,就是让把与 * 连通的都置为 # 包含 * ,
直接dfs就能够了,只是我wa了好多次。。。最后居然是多读了一个换行。忘了加getchar()了,gets()函数
会把缓冲区里面的换行给读进去的。。。应该把换行去掉,血的教训啊。。
。
代码:
#include<stdio.h> #include<string.h> #include<stdlib.h> int dx[4]={-1,0,0,1}; int dy[4]={0,-1,1,0}; char a[35][85]; void dfs(int x,int y) { for(int i=0; i<4; i++) { int xx = x+dx[i]; int yy = y+dy[i]; if(a[xx][yy]==' ') { a[xx][yy]='#'; dfs(xx,yy); } } return ; } int main() { int T; scanf("%d",&T); getchar(); while(T--) { int i =0; int j; memset(a,'