1 条题解
-
0
#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
- 上传者