作业比赛编号 : 1788 - 【C41209】瓢虫班
做完去洛谷刷水题
#include<bits/stdc++.h>
using namespace std;
//该定义的定义
int n;
char a[101][101],r[101][2];//int 还是char
//in函数写一下
int in(int x,int y){
return x>=1&&x<=n&&y>=1&&y<=n;
}
//四个方向写出来顺序是左上右下
int dx[4]={0,-1,0,1},
dy[4]={-1,0,1,0};
void dfs(int x,int y,int k){
a[x][y]='1';
r[k][0]=x;
r[k][1]=y;
if(x==n&&y==n){
for(int i=1;i<k;i++){
printf("(%d,%d)->",r[i][0],r[i][1]);
}
printf("(%d,%d)",r[k][0],r[k][1]);
return ;
}
for(int i=0;i<4;i++){
int tx=x+dx[i];
int ty=y+dy[i];
if(in(tx,ty)&&a[tx][ty]=='0'){
dfs(tx,ty,k+1);
}
}
}
int main() {
//把地图输入进来
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
dfs(1,1,1);
return 0;
}