3 solutions

  • 3
    @ 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;
    }
    
    • 2
      @ 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;
      }
      
      • -2
        @ 2025-1-4 11:40:14

        col=坳

      • 1

      Information

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