1 条题解

  • 0
    @ 2025-8-1 15:56:05

    #include 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; }

    • 1

    信息

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