题目
#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[25][25];
bool b[10000];
int ans=-114514;
void dfs(int x,int y,int cnt){
ans=max(ans,cnt);
b[a[x][y]]=true;
if(!b[a[x+1][y]]&&x!=m-1){
dfs(x+1,y,cnt+1);
}
if(!b[a[x][y+1]]&&y!=n-1){
dfs(x,y+1,cnt+1);
}
if(!b[a[x-1][y]]&&x!=1){
dfs(x-1,y,cnt+1);
}
if(!b[a[x][y-1]]&&y!=1){
dfs(x,y-1,cnt+1);
}
b[a[x][y]]=false;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
dfs(1,1,1);
cout<<ans;
return 0;
}
只能拿40分