注意输入:

m表示宽度,n表示高度(m表示列,n表示行)

dfs:

从左上角开始走迷宫,如果走过路径的和为SUM/2,记录走过数字个数

求走过数字的最小值

代码:

#include<iostream>
using namespace std;
const int MAX=15;
int n,m;
int size,sum,now,ans=100;
int map[MAX][MAX];//图作为全局变量
int vis[MAX][MAX];//防止走回头路 ,作为全局变量
int go[][2]={{1,0},{0,1},{-1,0},{0,-1}};//方向数组
void dfs(int x,int y)
{//走第一步 vis[x][y]=1;now+=map[x][y];size++;if(size>=ans)return ;//剪枝:当走的格子数已经大于前面的最小数量就不必再继续搜索if(now*2==sum){ans=min(ans,size);return ;}for(int i=0;i<4;i++)//往四个方向走以寻求可以剪的地方 {int new_x=x+go[i][0],new_y=y+go[i][1];if(vis[new_x][new_y]==0 && new_x>=1 && new_x<=n&& new_y>=1 && new_y<=m){dfs(new_x,new_y);vis[new_x][new_y]=0;  //回溯的时候需要将已访问过的点还原为未访问size--;                   //同时将用于标记格子数的变量减1 now-=map[new_x][new_y];  //以及把用于记录当前访问格子总和的变量还原 }}} int main(){cin>>m>>n;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>map[i][j];sum+=map[i][j];}}dfs(1,1);if(ans==100)cout<<0<<endl;elsecout<<ans<<endl;return 0; } 

参考:【蓝桥杯】历届试题 剪格子(深度优先搜索dfs、广度优先搜索bfs)_the_ZED的博客-CSDN博客

1432: 【蓝桥杯】:剪格子(迷宫问题变体)相关推荐

  1. java实现第四届蓝桥杯剪格子

    剪格子 题目描述 如图p1.jpg所示,3 x 3 的格子中填写了一些整数. 我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是60. 本题的要求就是请你编程判定:对给定的m x n 的格子 ...

  2. 蓝桥杯 python 走迷宫 BFS

    蓝桥杯 python 走迷宫 BFS 题目描述 给定一个 N × × × M 的网格迷宫 G.GG的每个格子要么是道路,要么是障碍物(道路用 1 表示,障碍物用 0 表示). 已知迷宫的入口位置为 ( ...

  3. java蓝桥杯省赛第十届_2019年第十届蓝桥杯省赛-迷宫(BFS/Excel大法)

    这题用dfs搜不出来,需要使用bfs并记录路径,设置好方向顺序跑就ok 然而毕竟是暴力杯,我们的原则是代码能省就省(懒癌晚期 于是乎网上便出现了形形色色的题解,笔者综合了各路大神神乎其技的思想,总结出 ...

  4. java蓝桥杯练习 格子刷油漆

    java蓝桥杯练习 格子刷油漆 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆. 你 ...

  5. 蓝桥杯题目练习 提升篇 [蓝桥杯2019初赛]迷宫

    [蓝桥杯2019初赛]迷宫 题目描述 下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为左上角, ...

  6. [蓝桥杯2019初赛]迷宫-DFS、BFS两种方法

    迷宫问题的最短路,加最小字典序 迷宫文件maze.txt传送门 作者写的2019年B组蓝桥杯解集 . . . DFS的版本 #include<iostream> #include<c ...

  7. adv147(蓝桥杯) 学霸的迷宫 bfs

    问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  8. 蓝桥杯.剪邮票(DFS)

    Question: Result:  116 Solve: 这个题意还是比较好懂的,就是12个数里找出5个数,然后看这5个数在方格中的位置是否相连, 代码也是这个思路,但确实不太好写,我换了好几种方案 ...

  9. 蓝桥杯-学霸的迷宫-广搜-java

    算法提高 学霸的迷宫   时间限制:1.0s   内存限制:256.0MB 问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面 ...

最新文章

  1. pyspark sparksession_pyspark中的行列互转
  2. C++ MFC控制台输出调试信息
  3. C语言数据类型转换(自动类型转换 强制类型转换)
  4. 计算机硬件实现乘法是什么,乘法器
  5. Kubernetes学习总结(2)——Kubernetes设计架构
  6. Android的清单文件添加百度地图SDK
  7. python中运行linux命令
  8. 动态连接_二维动画动态连接基础
  9. STC 18B20温度传感器读写程序
  10. oracle卸载步骤图解,Oracle安装卸载图文教程详解
  11. HMM原理解析(转载)
  12. 实现微信浏览器内打开App Store链接
  13. Windows 7中C:/Users/用户名/AppData里面的文件概述
  14. 对excel表格按照某个字段拆分
  15. SGMII光模块知识百科
  16. 【Linux】uptime命令详解平均负载
  17. html网页架构图,html网页文件基本写法及结构
  18. 爬虫 (二十一) 最完整的文件操作(值得收藏) (十二)
  19. 狂人日记day12 day13
  20. BIM建筑环境规则和分析(BERA)语言介绍(三)第二章 背景

热门文章

  1. EncryptHelper
  2. HDU2080 夹角有多大II【数学】
  3. HDU1240 POJ2225 Asteroids!【BFS】
  4. POJ3983 快算24【暴力】
  5. UVA495 Fibonacci Freeze【大数+万进制】
  6. Go语言的big包实现大整数运算
  7. Project Euler Problem 27 Quadratic primes
  8. 用决策树模型求解回归问题(regression tree)
  9. ceil() 与 floor() 与 round()
  10. 面向对象 —— 类设计(九) —— 类设计的内在一致性