3 solutions
-
2
#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
#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
Information
- ID
- 1008
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 42
- Accepted
- 10
- Uploaded By