洛谷 p1605 迷宫问题 详解

题解:dfs搜索
#include <iostream>
#include <algorithm>
#include <cstring>
#include <stdio.h>
using namespace std;
int map[][];//地图
bool temp[][];//走过的标记
int dx[]={,,,-};//打表
int dy[]={-,,,};
int sx,sy,fx,fy,total,l,r,n,m;
void walk(int x,int y)//x和y分别表示走到的点
{
if(x==fx&&y==fy)//如果刚好达到终点,则方案加1
{
total++;
return ;
}
else
{
for(int i=;i<=;i++)//i《=3意思就是四个方向进行遍历
{
int a=x+dx[i];//下一个位置
int b=y+dy[i];
if(temp[a][b]==&&map[a][b]==)//判断没有走过,并且没有障碍
{
temp[x][y]=;//标记
walk(a,b);//继续搜下一个点
temp[x][y]=;//恢复
}
}
}
}
int main ()
{
int n,m,t;
cin>>n>>m>>t;
for(int ix=;ix<=n;ix++)//把所给的区域变成1
{
for(int iy=;iy<=m;iy++)
{
map[ix][iy]=;
} }
cin>>sx>>sy>>fx>>fy;
int l,r;
for(int u=;u<t;u++)
{
cin>>l>>r;
map[l][r]=;//障碍标记成0
}
walk(sx,sy);//搜索一般都是起点坐标
cout<<total;
return ;
}
洛谷 p1605 迷宫问题 详解的更多相关文章
- 洛谷 P1605 迷宫
题目链接 https://www.luogu.org/problemnew/show/P1605 题目背景 迷宫 题目描述 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 ...
- 洛谷—— P1605 迷宫
P1605 迷宫 题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在 ...
- 洛谷P1605 迷宫——S.B.S.
题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...
- 洛谷P1605 迷宫 (DFS)
题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...
- 洛谷P1605 迷宫【dfs】
题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...
- 洛谷P1605 迷宫
迷宫 题目链接 这道题就是一道简单的dfs计方案数qwq. 我的思路是把表初始化为1,再将障碍改为0,因为在全局定义中数组会直接初始化为0,所以就少去了对边界的特判. next数组加循环可以减少代码量 ...
- 洛谷P1605 迷宫 深度搜索 模板!
题目背景 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫中移动有上下左右四种方式,每次只能移 ...
- (Java实现) 洛谷 P1605 迷宫
题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...
- 迷宫 洛谷 p1605
题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...
随机推荐
- Openstack Swift 创建用户和 container
openstack user create --domain default --password-prompt [用户名];openstack role add --project admin - ...
- 疫情之下微软收入猛增15%!远程办公产品Teams日活达7500万
当地时间 2020 年 4 月 29 日,微软公布了截止 2020 年 3 月 31 日的 2020 财年第三季度财报. 这是微软首次在财报中显示新冠疫情的影响——疫情之下,远程办公.远程教育和游戏场 ...
- Python内置函数enumerate()
enumerate()是Python的内置函数. help(enumerate) Help on class enumerate in module builtins: class enumerate ...
- AMD 开源照片级渲染引擎 Radeon ProRender
除了Radeon Pro WX.Radeon Pro Solid State两款全新的专业显卡,AMD今天还宣布,Radeon ProRender渲染引擎即将开放源代码,开发人员可任意使用.AMD去年 ...
- python(configparser 模块)
1.下载安装 configparser 第三方模块 pip install configparser 2.读取配置文件 #配置文件内容如下 """ "D:/co ...
- Java——字符串操作
/** * java字符串操作 * @author wydream * */ public class StringTest { public static void main(String[] ar ...
- js获取session对象
- Linux权限管理、系统进程管理
权限管理 linux系统中分为四种角色 u=user 当前用户 g=group 同组用户 o=other 其他用户 a=all 代表所有用户 三种权限 r=read 可读 w=write ...
- Spring mvc的基本配置及工作原理
1.spring mvc框架搭建 需求:在浏览器输入一个请求login.do,跳转到登录成功界面. 第一步,创建web项目,导入jar包 注意: 第二步,在web.xml中配置spring的核心监听器 ...
- Linux编程实现递归查找文件
命令格式如下:SCRIPT_NAME SEARCH_ON_DIR SEARCH_FILENAME #!/bin/bash Find(){ files=`` for file i ...