SSLOJ 1309 马蹄印(Horseshoes)

  • Description--
    • 题目:
    • 问题描述:
  • Input--
  • Output--
  • Sample Input--
  • Sample Output--
  • 说明--
  • 代码--

Description–

题目:

虽然当奶牛贝里斯找到平衡序列后很高兴了,但是他现在对序列提出了一个更高的要求,就是要求每个序列中必须是先一定数量的左括号然后是与左括号相同数量的右括号。例如:(((()))),就是一个完美的平衡序列。
当贝里斯某天在农场上走的时候,他在地上发现了马蹄印,这个农场是一个N * N的方格,每个小方格中都有一个马蹄印。贝里斯希望从方格的最左上角的地方开始出发,然后每次可以向上或者向下或者向左或者向右移动一步,使得他走过的每个小方格中的马蹄印能够组成一个完美的平衡序列。当然了,贝里斯不能重复经过任何小方格。

问题描述:

请帮助贝里斯在这个N * N的方格中找出长度最长的完美序列的长度。


Input–

第一行一个正整数N,表示农场的大小。
接下来N行,每行N个字符,表示N*N的方格上马蹄印的分布情况。

Output–

只有一行一个整数,表示最长的完美序列的长度,如果不存在这样的完美序列(例如起始位置就是右括号),则输出0。


Sample Input–

4
(())
()((
(()(
))))

Sample Output–

8


说明–

2<=N<=5。


代码–

#include<iostream>
#include<cstdio>
using namespace std;
int fx[4][2]={{-1,0},{0,-1},{0,1},{1,0}};
int n,ans;
bool b[7][7];
char h,a[7][7];
void dfs(int x,int y,int l,int r)
{if (l==r){ans=max(ans,l+r);return ;}if (l<r) return ;for (int i=0;i<4;++i){int xx=x+fx[i][0],yy=y+fx[i][1];if (!b[xx][yy]){if (a[xx][yy]=='('){if (r==0){b[xx][yy]=1;dfs(xx,yy,l+1,r);b[xx][yy]=0;//回溯}}else{b[xx][yy]=1;dfs(xx,yy,l,r+1);b[xx][yy]=0;//回溯}}}
}
int main()
{scanf("%d",&n);for (int i=1;i<=n;++i){scanf("%c",&h);for (int j=1;j<=n;++j)scanf("%c",&a[i][j]);}for (int i=1;i<=n;++i)b[i][0]=b[i][n+1]=b[0][i]=b[n+1][i]=1;//划边界if (a[1][1]=='('){b[1][1]=1;dfs(1,1,1,0);printf("%d",ans);}else printf("0");//不存在return 0;
}

SSLOJ·马蹄印【DFS】相关推荐

  1. 【DFS】马蹄印(Horseshoes)

    题目描述 虽然当奶牛贝里斯找到平衡序列后很高兴了,但是他现在对序列提出了一个更高的要求,就是要求每个序列中必须是先一定数量的左括号然后是与左括号相同数量的右括号.例如:(((()))),就是一个完美的 ...

  2. (纪中)1747. 马蹄印【DFS】

    (File IO): input:hshoe.in output:hshoe.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto ProblemSet 题目描述 虽 ...

  3. [dfs]SSL 2493 马蹄印

    Description 虽然当奶牛贝里斯找到平衡序列后很高兴了,但是他现在对序列提出了一个更高的要求,就是要求每个序列中必须是先一定数量的左括号然后是与左括号相同数量的右括号.例如:(((()))), ...

  4. 2020寒假【gmoj1747】【马蹄印】【DFS】

    题目描述 虽然当奶牛贝里斯找到平衡序列后很高兴了,但是他现在对序列提出了一个更高的要求,就是要求每个序列中必须是先一定数量的左括号然后是与左括号相同数量的右括号.例如:(((()))),就是一个完美的 ...

  5. 2020.2.13普及C组 马蹄印【纪中】【dfs】

    这道题几乎是dfs模板题,还是比较好做的. #include<iostream> #include<cstdio> #include<cmath> using na ...

  6. ssl模拟赛(2019.4.27)

    成绩 rank是有算其他大爷的 rank name score T1 T2 T3 T4 1 L Y F LYF LYF 320 100 100 100 20 2 H K Y HKY HKY 296 1 ...

  7. 初一模拟赛(4.27)

    成绩: rankrankrank namenamename scorescorescore T1T1T1 T2T2T2 T3T3T3 T4T4T4 111 lyflyflyf 320320320 10 ...

  8. 2020.2.13 C组模拟赛题解

    目录: T1:晾衣绳 T2:罗密欧与朱丽叶的约会 T3:粉刷栅栏 T4:马蹄印 T1:晾衣绳 题目描述 奶牛们用N(1<=N<=1000)根绳子架起了晾衣绳,以便晒它们刚洗完的衣服.用它们 ...

  9. 大前端的自动化工厂(5)—— 基于Karma+Mocha+Chai的单元测试和接口测试

    一. 前端自动化测试 大多数前端开发者对测试相关的知识是比较缺乏的,一来是开发节奏很快,来不及写,另一方面团队里也配备了"人肉测试机",完全没必要自己来.但随着项目体量的增大,许多 ...

  10. 推理集 —— 特殊的工具

    如何区分一个号码是网络电话,还是普通的手机号 可简单地通过号码格式 回拨打电话是空号或占线 双面的衣服(正反两面均可穿),且颜色差异较大 ⇒ 伪装+"销毁"证物,一石二鸟: 舞台用 ...

最新文章

  1. Ultra-QuickSort POJ 2299(归并排序)
  2. 区块链开发: 2019年及以后数字货币的前景如何?
  3. 软件维护费 一般按照多少比例_2021年国家电网招聘:笔试进面一般是多少比例?...
  4. GDCM:DICOM文件转储到Siemens Base64
  5. 执行 redis-dump 报错:ERROR (Errno::ENOENT): No such file or directory - ps -o rss= -p xxxxx
  6. 非常郁闷,WinForm中正常显示的自定义控件无法在WebForm中正常显示!
  7. 双拼输入法键位图_你知道双拼输入法吗?
  8. DSB2017第一名论文理解: 3D Deep Leaky Noisy-or Network(一)
  9. excel如何晒出重复数据_3秒找出Excel中的重复数据,年底数据统计用得上,赶紧码住...
  10. MVC5为WebAPI添加命名空间的支持
  11. css 适配mac 字体,CSS:仅在mac上使用字体
  12. linux ora -03113,ORA-03113:通信通道的文件结尾
  13. 美团前端面试题(附答案)
  14. 点量云流化技术在云游戏和虚拟仿真教学中有啥优势?
  15. Django数据映射 一对一 一对多 多对多
  16. Windows怎么把系统用户中文文件夹改成英文
  17. wireshark 安装后运行出现问题
  18. 关于SQL注入,绕过逗号过滤
  19. TP3.2 如何设置 防跳墙访问
  20. 网站长期被挂马 访问者屡遭木马侵害

热门文章

  1. mac php fpm 502,nginx+php-fpm出现502(Bad Gateway)错误的分析与解决 | linux系统运维
  2. PDF编辑软件哪个好 如何裁剪PDF文件页面
  3. 电子元器件之电容-2
  4. freekan电影网站制作教程
  5. 低版本IE对于JSON数据的处理
  6. lcms质谱仪_岛津LCMS-8045三重四极杆质谱仪
  7. xdb 服务_oracle XDB的问题,端口、http服务
  8. execute()方法
  9. 2019蓝桥杯国赛c++B组
  10. 致远OA办公网“office控件不可用”及“无注册表类”解决办法