博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1605 迷宫
阅读量:6227 次
发布时间:2019-06-21

本文共 1163 字,大约阅读时间需要 3 分钟。

迷宫

这道题就是一道简单的dfs计方案数qwq。

我的思路是把表初始化为1,再将障碍改为0,因为在全局定义中数组会直接初始化为0,所以就少去了对边界的特判。

  • next数组加循环可以减少代码量。
  • 注意一定要记得先把起始点标记!!!
    AC代码如下:
#include
#include
#include
#include
#include
#define MAXN 2000using namespace std;int N,M,T;int SX,SY,FX,FY;int total;int G[MAXN][MAXN];int vis[MAXN][MAXN];void dfs(int x,int y,int step){ int next[4][2]={
{1,0},{-1,0},{0,1},{0,-1}}; int a,b; if(x==FX&&y==FY) { total++; return; } for(int i=0;i<=3;i++) { a=x+next[i][0]; b=y+next[i][1]; if(G[a][b]==1&&vis[a][b]==0) { vis[a][b]=1; dfs(a,b,step+1); vis[a][b]=0; } } return; }int main(){ scanf("%d%d%d",&N,&M,&T); scanf("%d%d%d%d",&SX,&SY,&FX,&FY); for(int i=1;i<=N;i++) { for(int j=1;j<=M;j++) { G[i][j]=1; } } for(int i=1;i<=T;i++) { int x,y; scanf("%d%d",&x,&y); G[x][y]=0; } vis[SX][SY]=1; dfs(SX,SY,0); printf("%d",total); return 0;}

转载于:https://www.cnblogs.com/LITTLESUNwl/p/10674760.html

你可能感兴趣的文章
PMP考试的过与只是
查看>>
java 监控 收集资料3(收集中)
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
getRealPath()和getContextPath()的区别
查看>>
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
oracle12C 重做日志
查看>>
awk-sed
查看>>
zookeeper与kafka安装部署及java环境搭建(发布订阅模式)
查看>>
手写Json转换
查看>>
编码规约
查看>>
LeetCode OJ:Min Stack(最小栈问题)
查看>>
JS判断数组方法大全
查看>>
Tftod 的服务器使用下载文件
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
数字电路建模 - jchdl
查看>>
( 转)UVM验证方法学之一验证平台
查看>>
编写每天定时切割Nginx日志的脚本
查看>>
我们一起来聊聊并发吧,one。
查看>>
每日英语:China Pipeline Explosions Kill 52
查看>>
paip.提升性能---jvm java 工具使用.
查看>>