洛谷站外题,求看
  • 板块题目总版
  • 楼主in_shadow
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/16 16:37
  • 上次更新2024/6/16 19:10:18
查看原帖
洛谷站外题,求看
1046923
in_shadow楼主2024/6/16 16:37

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;
}
2024/6/16 16:37
加载中...