|
本帖最后由 liushupeng 于 2025-1-17 10:47 编辑
#include<bits/stdc++.h>
using namespace std;
char a[40][40];
bool vis[100];
int n,m,maxx=0;
int ax[4]={1,-1,0,0};
int bx[4]={0,0,1,-1};
void dfs(int x,int y,int step){
maxx=max(maxx,step);
for(int i=0;i<4;i++){
int nx=x+ax;
int ny=y+bx;
if(nx>=0&&nx<n&&ny>=0&&ny<m&&vis[a[nx][ny]]==false){
vis[a[nx][ny]]=true;
dfs(nx,ny,step+1);
vis[a[nx][ny]]=false;
}
}
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[j];
}
}
dfs(0,0,1);
cout<<maxx;
return 0;
}
|
|