解题思路: 因为涉及到回溯找最长的 所以最好用dfs递归
注意事项: 多练就行了 没啥注意的
参考代码:
/* 3 6 HFDFFB AJHGDH DGAGEH */ #include<iostream> #include<cstring> using namespace std; const int N=100; int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0}; char s[N][N]; int n,m,a[N],sum=0; void dfs(int x,int y,int k) { sum=max(sum,k); for(int i=0;i<4;i++) { int xx=x+dx[i]; int yy=y+dy[i]; if(xx>0&&yy>0&&xx<=n&&yy<=m&&a[s[xx][yy]]!=1) { a[s[xx][yy]]=1; dfs(xx,yy,k+1); a[s[xx][yy]]=0; } } } int main(void) { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>s[i][j]; a[s[1][1]]=1; dfs(1,1,1); cout<<sum<<endl; return 0; }
0.0分
1 人评分
P1001 (C++代码)浏览:779 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:716 |
C语言训练-计算1977!* (C语言代码)浏览:899 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:586 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:946 |
震宇大神的杀毒软件 (C++代码)浏览:1118 |
简单的a+b (C语言代码)浏览:544 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:615 |
C语言训练-求PI* (C语言代码)浏览:614 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:549 |