5 solutions

  • 6
    @ 2024-7-9 16:48:25
    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    int dx[]={-1,1,0,0},dy[]={0,0,-1,1};
    bool st[N];
    char g[N][N];
    int n,m;
    int ans=1;
    void dfs(int x,int y,int len)
    {
        ans=max(ans,len);
        for(int i=0;i<4;i++)
        {
            int tx=x+dx[i],ty=y+dy[i];
            if(tx<0||tx>=n||ty<0||ty>=m||st[g[tx][ty]])
                continue;
            st[g[tx][ty]]=1;
            dfs(tx,ty,len+1);
            st[g[tx][ty]]=0;
        }
    }
    int main()
    {
     
        cin>>n>>m;
        for(int i=0;i<n;i++) cin>>g[i];
        st[g[0][0]]=1;
        dfs(0,0,1);
        cout<<ans;
        return 0;
    }
    
    • 1
      @ 2024-7-19 10:37:30
      #include<bits/stdc++.h>
      using namespace std;
      const int N=110;
      int dx[]={-1,1,0,0};
      int dy[]={0,0,-1,1};
      bool st[N];
      char g[N][N];
      int n,m;
      int ans=1;
      void dfs(int x,int y,int len)
      {
         ans=max(ans,len);
         for(int i=0;i<4;i++)
         {
            int tx=x+dx[i],ty=y+dy[i];
            if(tx<0||tx>=n||ty<0||ty>=m||st[g[tx][ty]])
            {
               continue;
            }
            st[g[tx][ty]]=1;
            dfs(tx,ty,len+1);
            st[g[tx][ty]]=0;
         }
      }
      int main()
      {
       
         cin>>n>>m;
         for(int i=0;i<n;i++)
         {
            cin>>g[i];
         }
         st[g[0][0]]=1;
         dfs(0,0,1);
         cout<<ans;
         return 0;
      }
      
      • 0
        @ 2026-3-15 15:03:44

        极简版:

        #include<bits/stdc++.h>
        using namespace std;
        const int N=110;
        int dx[]={-1,1,0,0},dy[]={0,0,-1,1};
        bool st[N];
        char g[N][N];
        int n,m;
        int ans=1;
        void dfs(int x,int y,int len){
        	ans=max(ans,len);
        	for(int i=0;i<4;i++){
        		int a=x+dx[i],b=y+dy[i];
        		if(a<0||a>=n||b<0||b>=m||st[g[a][b]]) continue;
        		st[g[a][b]]=1;
        		dfs(a,b,len+1);
        		st[g[a][b]]=0;	
        	}
        }
        int main(){
        	cin>>n>>m;
        	for(int i=0;i<n;i++) cin>>g[i];
        	st[g[0][0]]=1;
        	dfs(0,0,1);
        	cout<<ans;
        	return 0;
        }
        
        
        • 0
          @ 2026-3-15 14:46:54

          ?

          • -4
            @ 2025-1-4 11:40:14

            col=坳

          • 1

          Information

          ID
          1008
          Time
          1000ms
          Memory
          256MiB
          Difficulty
          5
          Tags
          (None)
          # Submissions
          78
          Accepted
          19
          Uploaded By