Description
奶牛按不太传统的方式玩起小朋友玩的跳房子游戏,现给出一个5*%的由数字组成的网格。它们在格子中向前前跳,向后跳,向左跳,向右跳,跳到网格中另一个数字后,又这样继续跳(可能跳到某个已跳过的数字)。一共在网格中跳过五次后,它们经过的格子数组成一个六位数(可能是0开始头的,例如000201).现问所有可以被跳出来的不同整数的总数。
Input
输入共五行,每行五个数字.
Output
如题
Sample Input
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 2 1
1 1 1 1 1
Sample Output
15
HINT
111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112,

121211, 121212, 211111, 211121, 212111, and 212121 can be constructed.

No other values are possible.

今天考试2题…
又是一道DFS,分别从每个点出发,往四周拓展,不打标记,深度超限就判断当前情况是否出现过,没出现过就标记然后cnt++,查找工作可以交给set来完成,这样就不需要打标记这些了…
ov.

 1 /*
 2 这道题看题目描述感觉ans用int存,前导0存不下,所以干脆就用字符串一位一位加
 3 */
 4 #include<bits/stdc++.h>
 5 using namespace std;
 6 int cnt;
 7 string ans;
 8 char mp[11][11];
 9 int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
10 bool in(int x,int y)
11 {
12     return 1<=x&&x<=5&&1<=y&&y<=5;
13 }
14 set<string> s;
15 void dfs(int x,int y,int dep,string an)
16 {
17     an+=mp[x][y];
18     if(dep==6)
19     {
20         if(!s.count(an))
21         {
22             s.insert(an);
23             cnt++;
24         }
25         return;
26     }
27     for(int i=0;i<4;i++)
28     {
29         int nx=x+dir[i][0],ny=y+dir[i][1];
30         if(in(nx,ny))
31         {
32             dfs(nx,ny,dep+1,an);
33         }
34     }
35     return;
36 }
37 int main()
38 {
39     for(int i=1;i<=5;i++)
40         for(int j=1;j<=5;j++)
41             cin>>mp[i][j];
42     for(int i=1;i<=5;i++)
43     {
44         for(int j=1;j<=5;j++)
45         {
46             dfs(i,j,1,"");
47         }
48     }
49     cout<<cnt<<endl;
50     return 0;
51 }

转载于:https://www.cnblogs.com/moyujiang/p/11213368.html

【题解】跳房子-C++相关推荐

  1. [NOIP2017 普及组]跳房子 【题解】

    题目背景 NOIP2017 普及组 T4 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n n ...

  2. java 跳格子_【题解】跳房子-C++

    Description 奶牛按不太传统的方式玩起小朋友玩的跳房子游戏,现给出一个5*%的由数字组成的网格.它们在格子中向前前跳,向后跳,向左跳,向右跳,跳到网格中另一个数字后,又这样继续跳(可能跳到某 ...

  3. Noip2017 跳房子——普及组

    原题地址(点我) 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n 个格子,这些格子都在同一条 ...

  4. NOIP模拟测试13「矩阵游戏·跳房子·优美序列」

    矩阵游戏 考试时思路一度和正解一样,考试到最后还是打了80分思路,结果80分打炸了只得了40分暴力分 题解 算出来第一列的总值,每次通过加每两列之间的差值得出下一列的总值 算第一列我们只需要让当前点* ...

  5. [洛谷P3957] 跳房子

    洛谷题目连接:跳房子 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 \(n\) 个格子,这些格 ...

  6. 【OpenJudge NOI】题解目录

    [OpenJudge NOI]题解目录 OJ链接:OpenJudge NOI 以下为本人做的OJ题解 针对每一道题我都会给出题目考点.解题思路.题解代码.必要时也会给出不同的解题方法. 如有不足之处, ...

  7. 信息学奥赛一本通超详细题解,动画图文题解

    内容来源于微信公众号:大神编程.已经过原文作者授权. 更新时间:2020-11-5 现在开始更新基础算法题. 个人感言:从未见过如此详细的题解,动画.图文结合,适合任何水平的选手.尤其是特别适合自学的 ...

  8. noip2017爆炸记——题解总结反省(普及组+提高组)

    相关链接: noip2018总结 noip2017是我见过的有史以来最坑爹的一场考试了. 今年北京市考点有一个是我们学校,我还恰好被分到了自己学校(还是自己天天上课的那个教室),于是我同时报了普及提高 ...

  9. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

最新文章

  1. 把qss添加进qrc文件_PDF怎么压缩?一招教你快速压缩PDF文件
  2. MySQL 数据库常用存储引擎的特点
  3. Sqoop import导入表时报错java.lang.ClassNotFoundException: org.json.JSONObject
  4. java关于校园共享单车_关于校园文明骑行共享单车倡议书
  5. c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2
  6. JimuReport积木报表1.3.3 版本发布,可视化报表工具
  7. QT实现可移动和改变尺寸的无边框窗口
  8. python之HTTP处理模块urllib和urllib2
  9. php 编码 url,php escape URL编码
  10. Git 删除本地分支和远程分支
  11. poj2594 Treasure Exploration 二分匹配之最小路径覆盖+传递闭包
  12. bp神经网络模型拓扑结构,bp神经网络模型结构图
  13. Excel:INDIRECT函数
  14. QQ等级图标对应的算法
  15. 同步,异步,直流电机原理
  16. Android 页面跳转时发生双击导致app闪退的解决方案
  17. Nginx 单IP绑定多域名配置 顶级域名重定向到www域名
  18. ubuntu 更新系统源
  19. JavaScript—数组—join()
  20. 计算机开启时提示键盘错误,键盘错乱,教您笔记本电脑键盘错乱的解决方法

热门文章

  1. 如何配置Ubuntu17的软件库(sortware update)
  2. mysql慢查询面试题_头条Java岗3面入职:事务+慢查询SQL+Redis+秒杀设计面试题等
  3. 基于SpringCloud的微服务架构演变史?
  4. Android多线程之IntentService源码解析
  5. 一个技术人员必须考虑的问题:转型
  6. 关于特殊的LCS问题的优化
  7. jdbc Illegal value for setFetchSize()
  8. Linux操作系统基础解析之(三)——基本命令行操作及获得帮助的方法
  9. 乐观锁与悲观锁的应用场景
  10. Supervisord管理