洛谷 P1605 迷宫

时间:2022-09-12 16:21:34

洛谷 P1605 迷宫

题目链接

https://www.luogu.org/problemnew/show/P1605


题目背景

迷宫


题目描述

给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和

终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫

中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。


输入输出格式

输入格式:

【输入】

第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点

坐标FX,FY。接下来T行,每行为障碍点的坐标。

输出格式:

【输出】

给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方

案总数。

【数据规模】

1≤N,M≤5


思路

一道连小小小小(此处省略999999个小)蒟蒻都会的搜索水题,却卡了我大半个小时......

原因就是边界条件忘记判断了......(不对,还RE了几次)

建立二维BOOL数组a和vis,a数组表示大地图(赋初值后不再改变),而vis数组则是每次搜索时进行标记和回溯的数组

按要求输入,并将障碍点全部标记为true,不要忘记把起始点也标记为true,然后进行搜索,判断即可

如果搜到了(fx,fy)这个点,就让tot++,最后输出即可


代码

#include<bits/stdc++.h>//还是懒人头文件
using namespace std; int n,m,t;
bool a[][],vis[][];
int x,y;
int sx,sy,fx,fy;//题目要求输入的对象
int f[][]= {{,,},{,,},{,,-},{,,},{,-,}};
int tot=;//答案 /*
inline int read() {
char ch=getchar();
int x=0,f=1;
while(ch<'0'||ch>'9') {
if(ch=='-');
f=-1,ch=getchar();
}
while(ch>='0'&&ch<='9') {
x=x*10+ch-48,ch=getchar();
}
return x*f;
}
*/ void dfs(int x,int y) {
if(x==fx&&y==fy) {//找到了就加一再回溯
tot++;
return;
}
for(int i=; i<=; i++) {
int nx=x+f[i][];
int ny=y+f[i][];
if(nx>&&ny>&&nx<=n&&ny<=m&&!a[nx][ny]&&!vis[nx][ny]) {
vis[nx][ny]=true;
dfs(nx,ny);
vis[nx][ny]=false;
}
}
} int main() {
memset(a,false,sizeof(a));
scanf("%d%d%d",&n,&m,&t);
scanf("%d%d%d%d",&sx,&sy,&fx,&fy);
a[sx][sy]=true;//出发点为true
while(t--) {
scanf("%d%d",&x,&y);
a[x][y]=true;
}
dfs(sx,sy);//搜索
cout<<tot<<endl;
return ;
}

洛谷 P1605 迷宫的更多相关文章

  1. 洛谷—— P1605 迷宫

    P1605 迷宫 题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在 ...

  2. 洛谷P1605 迷宫——S&period;B&period;S&period;

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  3. 洛谷P1605 迷宫 (DFS)

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  4. 洛谷P1605 迷宫【dfs】

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  5. 洛谷P1605 迷宫

    迷宫 题目链接 这道题就是一道简单的dfs计方案数qwq. 我的思路是把表初始化为1,再将障碍改为0,因为在全局定义中数组会直接初始化为0,所以就少去了对边界的特判. next数组加循环可以减少代码量 ...

  6. 洛谷P1605 迷宫 深度搜索 模板!

    题目背景 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫中移动有上下左右四种方式,每次只能移 ...

  7. (Java实现) 洛谷 P1605 迷宫

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  8. 洛谷 p1605 迷宫问题 详解

    题解:dfs搜索 #include <iostream> #include <algorithm> #include <cstring> #include < ...

  9. 迷宫 洛谷 p1605

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

随机推荐

  1. list&lt&semi;T&gt&semi; 的使用方法。

    首先讲一个经常用到的Contains( )方法,用来测试一个元素是否在List内.这个功能跟SQL里面的" like % %"类似. 这个方法在数组中也存在,因为集合其实就是动态数 ...

  2. XOR Swap

    swap(a, b): a ^= b b ^= a a ^= b 先明确一下,a ^ a = 0,同时对于一切数x ^ 0 = x 可以这样理解,第三行: b ^= a b ^= a ^ b b = ...

  3. Python第八天

    Python面向对象进阶 一.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过 ...

  4. python BeautifulSoup find 方法

    这里我们重点讲一下find的几种用法,其他的类比: find(name=None, attrs={}, recursive=True, text=None, **kwargs) (ps:只讲几种用法, ...

  5. 解决Xcode升级7&period;0后,部分&period;a静态库在iOS9&period;0的模拟器上,link失败的问题

    简单描述一下这个问题:我们项目中使用了Google大神开发的LevelDB键值对数据库,在Xcode6,iOS8的环境下,编译好的.a静态库是可以正常使用的.但是升级后,发现在模拟器上无法link成功 ...

  6. linux前四天学习笔记

    以下是在linux培训机构所学的内容,感觉比较乱 MySQL学习笔记MySQL的安装 linux中的超级管理员rootaixocm vnc的退出: F8 MySQL的特点.优点:关系型开源.免费c++ ...

  7. Caused by&colon; java&period;lang&period;ClassNotFoundException&colon; javax&period;persistence&period;Entity

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  8. azkaban编译安装配置文档

    azkaban编译安装配置文档 参考官方文档: http://azkaban.github.io/azkaban/docs/latest/ azkaban的配置文件说明:http://azkaban. ...

  9. docker 创建jdk镜像

    基于上一个创建的基础镜像, wenbronk/centos Dockerfile ############################################ # version : we ...

  10. eclipse生成ant build&period;xml打war包

      背景: 最近想实现jenkins+ant命令一键打war包,部署到测试环境,然后自动化接口测试,结果发现用eclipse本身导出的ant buildfiles文件,打包出来都是空文件.很多代码都没 ...