1 条题解

  • 0
    @ 2025-7-26 19:57:53

    666没人发题解了

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXN=20+5;
    char a[MAXN][MAXN];
    bool h[26+2];
    int dx[4]={0,1,0,-1};
    int dy[4]={1,0,-1,0};
    int n,m,maxlen=0;
    void dfs(int x,int y,int slen){
    	maxlen=max(maxlen,slen);
    	for(int i=0;i<4;i++){
    		int nx=x+dx[i],ny=y+dy[i];
    		if(nx<0 || nx>=n || ny<0 || ny>=m || h[a[nx][ny]-'A']){
    			continue;
    		}
    		h[a[nx][ny]-'A']=true;
    		dfs(nx,ny,slen+1);
    		h[a[nx][ny]-'A']=false;
    	}
    }
    int main()
    {
    	cin>>n>>m;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	h[a[0][0]-'A']=true;
    	dfs(0,0,1);
    	cout<<maxlen<<endl;
    	return 0;
    }
    
    
    

    提交记录

信息

ID
621
时间
1000ms
内存
256MiB
难度
7
标签
(无)
递交数
34
已通过
10
上传者