首页 > 其他分享 >洛谷 P1605 迷宫 C语言 bfs

洛谷 P1605 迷宫 C语言 bfs

时间:2024-12-01 09:01:14浏览次数:7  
标签:10 sy sx 洛谷 int 迷宫 bfs 坐标 P1605

题目:

https://www.luogu.com.cn/problem/P1605

题目描述

给定一个 N×M方格的迷宫,迷宫里有 TT 处障碍,障碍处不可通过。

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

给定起点坐标和终点坐标,每个方格最多经过一次,问有多少种从起点坐标到终点坐标的方案。

输入格式

第一行为三个正整数 N,M,TN,M,T,分别表示迷宫的长宽和障碍总数。

第二行为四个正整数 SX,SY,FX,FY,SX,SY 代表起点坐标,FX,FY 代表终点坐标。

接下来 T 行,每行两个正整数,表示障碍点的坐标。

输出格式

输出从起点坐标到终点坐标的方案总数。

#include<iostream>
using namespace std;

int n, m, t, sx, sy, fx, fy;
int  vis[10][10]; //标记
int map[10][10]; //障碍物位置
int ans = 0;
int dx[] = { 1,0,-1,0 };
int dy[] = { 0,-1,0,1 };
void dfs(int x, int y)
{
    if (x == fx && y == fy)
    {
        ans++;
        return;
    }
    for (int k = 0; k < 4; k++)
    {
        int tx = dx[k] + x;
        int ty = dy[k] + y;
        if (tx >= 1 && tx <= n && ty >= 1 && ty <= m && vis[tx][ty]==0 && map[tx][ty]==0)
        {
            vis[tx][ty] = 1;
            dfs(tx, ty);
            vis[tx][ty] = 0;
        }
    }
}
int main()
{
    cin >> n >> m >> t >> sx >> sy >> fx >> fy;
    while (t--)
    {
        int a, b;
        cin >> a >> b;
        map[a][b] = 1;
    }
    vis[sx][sy] = 1;
    dfs(sx, sy);
    cout << ans << endl;
    return 0;
}

标签:10,sy,sx,洛谷,int,迷宫,bfs,坐标,P1605
From: https://blog.csdn.net/zqystca/article/details/144162172

相关文章

  • C语言 神奇的幻方(洛谷 p2615 )幻方是一种很神奇的N*N矩阵
            题目:神奇的幻方(洛谷p2615)幻方是一种很神奇的N*N矩阵:它由数字1,2,3,…,N*N构成,且每行、每列及两条对角线上的数字之和都相等。当N为奇数时,可以通过以下方法构建一个幻方:首先将1写在第一行的中间;之后,按如下方式从小到大依次填写每个数k(k=2,3,…,N*N)若(k-1)在第一......
  • 【洛谷】P2089 烤鸡
    #include<iostream>usingnamespacestd;intmain(){ intn,a,b,c,d,e,f,g,h,i,j,num=0; cin>>n; for(a=1;a<=3;a++) { for(b=1;b<=3;b++) { for(c=1;c<=3;c++) { for(d=1;d<=3;d++) { for(e=1;e<=3;e++) { ......
  • 洛谷 P1680 奇怪的分组(组合数学)
    题目传送门https://www.luogu.com.cn/problem/P1680解题思路这是一道组合数学题。既然题目说了第  个组要大于  个人,那我们不妨先给每个组分  个人。但题目说了是大于  个人,我们只给每个组分了  个人,所以还得分几个人。那么问题就变成了:对于剩下的  个人,我们......
  • 洛谷 P2895 [USACO08FEB] Meteor Shower S C语言 bfs
    题目:https://www.luogu.com.cn/problem/P2895题目描述贝茜听说一场特别的流星雨即将到来:这些流星会撞向地球,并摧毁它们所撞击的任何东西。她为自己的安全感到焦虑,发誓要找到一个安全的地方(一个永远不会被流星摧毁的地方)。如果将牧场放入一个直角坐标系中,贝茜现在的位置是原......
  • 洛谷 P1162 填涂颜色 C语言 bfs
    题目:https://www.luogu.com.cn/problem/P1162由数字 0 组成的方阵中,有一任意形状的由数字 1 构成的闭合圈。现要求把闭合圈内的所有空间都填写成 22。例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下:如果从某个 0 出发,只向上下左右 4 个方向移动且仅经过其他 00 的情......
  • 洛谷 P1332 血色先锋队 C语言 bfs
    题目:https://www.luogu.com.cn/problem/P1332#submit题目背景巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物。孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好聚集了起来,以......
  • 洛谷 【LGR-206-Div.3】洛谷基础赛 #17 & Diligent-OI Round 1 的 第二题 P11272「Dil
    1.首先,这道题涉及到了区间和和区间积,所以需要用到前缀和s[N]。2.然后,题目解释需要分类讨论!!!下文中的n为n=r-l+1;!!!并非题干中的n;当k >= n时,区间积+k>=k,即使区间全部为1,区间和也是n。(但是如果全为1 区间积+k就为k+1 不合题意),所以种情况为无解,输......
  • 差分约束 + 01BFS
    属于简单知识点的补档。差分约束差分约束系统是一种特殊的\(n\)元一次不等式组,包含\(n\)个变量\(x_1,\dots,x_n\)和\(m\)个约束条件,每个约束条件形如\(x_i-x_j\lec_k\),其中\(c_k\)是常数。我们要解决的问题是求出\(x_1,\dots,x_n\)的一组解。差分约束问题是最短......
  • 洛谷题单指南-线段树-P3373 【模板】线段树 2
    原题链接:https://www.luogu.com.cn/problem/P3373题意解读:对于序列a[n],支持三种操作:1.对区间每个数乘上一个数2.对区间每个数加上一个数3.求区间和解题思路:由于支持乘、加两种区间修改操作,是线段树的另一种典型应用:多个懒标记显然,这里需要两个懒标记,mul表示对子节点区间每个......
  • 洛谷P1807 最长路
    洛谷P1807最长路#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintinf=-1e6;constintmaxx=2550005;intn,m,head,tail,g[1505][1505],q[maxx];intdp[1505];boolflag[1505];//flag记录点是否在队内signedmain(){ cin>>n>>m; f......