https://cdn.luogu.com.cn/upload/image_hosting/cstnqh4t.png
使用DFS为什么错
#include<bits/stdc++.h>
using namespace std;
const int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int a[105][105],b[105][105];
int m,n,sum,x;
void work(int x,int y)
{
if(x<1||y<1||x>n||y>m||a[x][y]!=x) return;
a[x][y]=0;
for(int i=0;i<4;i++)
work(x+dx[i],y+dy[i]);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
x=a[n][m];
work(n,m);
for(int i=1;i<=n;i++)
{
int ans=m;
for(int j=n;j>=1;j--)
if(a[i][j]!=0) b[i][ans--]=a[i][j];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<b[i][j]<<" ";
cout<<'\n';
}
return 0;
}