using namespace std;
int r,s;
char a[21][21];
int c[26];
int maxn;
int movex[4]={-1,0,1,0};
int movey[4]={0,1,0,-1};
void dfs(int cr,int cc,int cnt){
    char cur_ch=a[cr][cc];
    c[cur_ch-'A']=1;
    for(int i=0;i<4;i++){
        int next_r=cr+movex[i];
        int next_c=cc+movey[i];
        if(next_r>=0&&next_r<r&&next_c>=0&&next_c<s){
            char next_ch=a[next_r][next_c];
            if(c[next_ch-'A']==0){
                c[next_ch-'A']=1;
                dfs(next_r,next_c,cnt+1);
                c[next_ch-'A']=0;
            }
            if(cnt>maxn){
                maxn=cnt;
            }
        }
    }
}
int main(){
    cin>>r>>s;
    for(int i=0;i<r;i++){
        cin>>a[i];
    }
    dfs(0,0,1);
    cout<<maxn;
}

0 条评论

目前还没有评论...

信息

ID
216
时间
ms
内存
MiB
难度
8
标签
递交数
204
已通过
28
上传者