题目描述

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

当贝里斯某天在农场上走的时候,他在地上发现了马蹄印,这个农场是一个N*N的方格,每个小方格中都有一个马蹄印。贝里斯希望从方格的最左上角的地方开始出发,然后每次可以向上或者向下或者向左或者向右移动一步,使得他走过的每个小方格中的马蹄印能够组成一个完美的平衡序列。当然了,贝里斯不能重复经过任何小方格。

问题描述:

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

输入
第一行一个正整数N,表示农场的大小。

接下来N行,每行N个字符,表示N*N的方格上马蹄印的分布情况。
输出
只有一行一个整数,表示最长的完美序列的长度,如果不存在这样的完美序列(例如起始位置就是右括号),则输出0。
样例输入

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

样例输出

8

数据范围限制
数据范围:2<=N<=5。


解题思路

数据很小,直接深搜就好


#include<iostream>
#include<cstdio>
using namespace std;
const int way[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int a[10][10],n,Gun;
char c;
bool check(int x,int y){return (x>0&&x<=n&&y>0&&y<=n);
}
void dfs(int x,int y,int l,int r){if(l==r){Gun=max(Gun,l+r);}for(int i=0;i<4;i++){int xx=x+way[i][0],yy=y+way[i][1];if(check(xx,yy)){if(a[xx][yy]==1&&!r){//左括号并且没做右括号a[xx][yy]=0;dfs(xx,yy,l+1,r);a[xx][yy]=1;}if(a[xx][yy]==-1){//开始做右括号a[xx][yy]=0;dfs(xx,yy,l,r+1);a[xx][yy]=-1;}}}
}
int main(){//  freopen("hshoe.in","r",stdin);
//  freopen("hshoe.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>c;if(c=='(')a[i][j]=1;else a[i][j]=-1;}}if(a[1][1]==1){//如果第一个就是右括号,那么答案一定为0a[1][1]=0;dfs(1,1,1,0); }printf("%d",Gun);
}

【jzoj1747】马蹄印相关推荐

  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. 初一模拟赛(4.27)

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

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

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

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

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

  9. 冰河浅析 - 揭开***的神秘面纱(下)

    本文主要是探讨***的基本原理, ***的破解并非是本文的重点(也不是我的长处),具体的破解请大家期待yagami的<特洛伊***看过来>(我都期待一年了,大家和我一起继续期待吧,嘿嘿), ...

  10. 冰河浅析 - 揭开木马的神秘面纱(下)

    冰河浅析   -   揭开木马的神秘面纱(下)     作者:·   shotgun·yesky 四.破解篇(魔高一尺.道高一丈)         本文主要是探讨木马的基本原理,   木马的破解并非是 ...

最新文章

  1. JS基础 -- 枚举对象中的属性
  2. NO29 用户提权sudo配置文件详解实践--志行为审计
  3. using namespace cv_闪耀暖暖万圣节非凡魔女南瓜套公开 消耗钻石获取 大喵无CV
  4. android 自定义打包,android 自定义打包后的app名称
  5. python第一周心得_python第一周心得-Go语言中文社区
  6. android package.xml,Android自动化编译设置AndroidManifest.xml中package值(包名)
  7. plsql存储过程修改后怎么保存_分布式基础-存储引擎
  8. 从实验室搬到宿舍后可以上QQ但打不开网页
  9. 促销方式,各位自己马克,留着用就好
  10. 怎么自学python-结合学习经历,谈一谈如何学习Python
  11. apache ActiveMQ反序列化漏洞(CVE-2015-5254)复现
  12. Python语言程序设计 测验6: 组合数据类型 (第3周)
  13. 手机html在哪个文件里,手机相册在哪个文件夹,教您手机图片存放在哪里
  14. ie无法下载 无法打开该internet站点.请求的站点不可用或无法找到.请稍后重试
  15. html外链自动加nofollow,WordPress自动为站外链接添加nofollow标签
  16. vue3 watch 异步方法
  17. 【C++】C++调用Python
  18. 解决win2008 R2远程桌面授权过期的方法
  19. 36篇精品文章搞定所有TOEIC单词
  20. 怎样从一个手机上安两个不同版本的软件_一部手机上怎么安装两个不同版本的微信?一部手机安装两个不同版本微信的方法...

热门文章

  1. 如何将一个长URL转换为一个短URL?
  2. Ubuntu 18.04 中Chrome浏览器安装与使用
  3. OMNeT 例程 Tictoc15 学习笔记
  4. 48个英语音标表:20个元音+28个辅音(转载)
  5. Excel查找快捷键:Ctrl+F
  6. 微信打开第三方app
  7. 测试 软通动力软件测试机试_软通动力2020春招软件测试笔试题以及答案
  8. 树莓派硬件编程——(零)先导篇
  9. 2018年腾讯社交广告大赛复习总贴
  10. 基于TI Davinci架构的多核/双核开发高速扫盲(以OMAP L138为例),dm8168多核开发參考以及达芬奇系列资料user guide整理...