1212:LETTERS

简介: 1212:LETTERS

1212:LETTERS

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

给出一个roe×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。

【输入】

第一行,输入字母矩阵行数R和列数S,1≤R,S≤20。接着输出R行S列字母矩阵。

【输出】

最多能走过的不同字母的个数。

【输入样例】

3 6

HFDFFB

AJHGDH

DGAGEH

【输出样例】

6

【来源】

No

1. #include<iostream>
2. #include<cstdio>
3. #include<iomanip>
4. using namespace std;
5. int r,s;
6. char a[50][50];
7. bool b[50][50]={0};
8. bool p[1000];
9. int X[4]={-1,0,1,0};
10. int Y[4]={0,1,0,-1};
11. int sum=0;
12. int dfs(int x,int y,int t)
13. {
14.   sum=max(sum,t);
15.   for(int i=0;i<4;i++){
16.     int xx=x+X[i];
17.     int yy=y+Y[i];
18.     if(xx>=1&&xx<=r&&yy>=1&&yy<=s&&(!b[xx][yy])&&(!p[a[xx][yy]])){
19.       b[xx][yy]=1;
20.       p[a[xx][yy]]=1;
21.       dfs(xx,yy,t+1);
22.       b[xx][yy]=0;
23.       p[a[xx][yy]]=0; 
24.     } 
25.   } 
26. }
27. int main()
28. {
29.   cin>>r>>s;
30.   for(int i=1;i<=r;i++)
31.     for(int j=1;j<=s;j++) cin>>a[i][j];
32.   b[1][1]=1;
33.   p[a[1][1]]=1;
34.   dfs(1,1,1);
35.   cout<<sum;
36.   return 0;
37.  }


相关文章
|
存储 Java 开发工具
Android开发的技术与开发流程
Android开发的技术与开发流程
629 1
|
JavaScript 前端开发 安全
如何学好JavaScript:从初学者到专家的学习指南
JavaScript是一门强大的编程语言,用于在网页上创建交互性和动态性。无论你是初学者还是有经验的开发者,学好JavaScript都是一个有价值的追求。这篇文章将指导你如何系统地学习JavaScript,并逐步提升你的技能水平,从初学者到专家。
|
人工智能 文字识别 API
Python反爬机制-验证码(二)
Python反爬机制-验证码(二)
187 1
|
JavaScript 前端开发
vue尚品汇商城项目-day06【vue插件-42.支付页面中使用ElementUI以及按需引入】
vue尚品汇商城项目-day06【vue插件-42.支付页面中使用ElementUI以及按需引入】
123 0
|
C语言 容器
从C语言到C++_27(AVL树)概念+插入接口实现(四种旋转)(上)
从C语言到C++_27(AVL树)概念+插入接口实现(四种旋转)
189 4
|
并行计算 数据处理 Python
Python中的高级函数应用与实践
本文将深入探讨Python中高级函数的概念、特性及应用场景,通过实际案例演示,帮助读者更好地理解和运用高级函数,提升代码的灵活性和可维护性。
|
JavaScript
对于Vue Slot插槽的讲解
对于Vue Slot插槽的讲解
132 0
Java基础进阶TreeSet集合-Comparable,Comprator接口
Java基础进阶TreeSet集合-Comparable,Comprator接口
Java基础进阶TreeSet集合-Comparable,Comprator接口
|
存储 C++
【C++进阶学习】二叉搜索树(2)
【C++进阶学习】二叉搜索树(2)
|
关系型数据库 应用服务中间件 PHP