zoukankan      html  css  js  c++  java
  • 洛谷P1605 迷宫 (DFS)

    题目背景

    迷宫 【问题描述】

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

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

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

    输入样例 输出样例

    【数据规模】

    1≤N,M≤5

    题目描述

    输入输出格式

    输入格式:

    【输入】

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

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

    输出格式:

    【输出】

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

    案总数。

    输入输出样例

    输入样例#1: 复制
    2 2 1
    1 1 2 2
    1 2
    
    输出样例#1: 复制
    1

    计数方式:能到终点就加一 但是走过的地方需要标记一下
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cmath>
     4 using namespace std;
     5 char a[35][35];
     6 int n,m,t;
     7 int res=0;
     8 int dx[4]={1,-1,0,0};
     9 int dy[4]={0,0,1,-1};
    10 int sx,sy,ex,ey;
    11 void dfs(int x,int y)
    12 {
    13     if(x==ex-1&&y==ey-1) {
    14         res++;
    15         return;
    16     }
    17     for(int i=0;i<4;i++){
    18         int nx=x+dx[i],ny=y+dy[i];
    19         if(nx>=0&&nx<n&&ny>=0&&ny<m&&a[nx][ny]=='.'){
    20             a[x][y]='#';
    21             dfs(nx,ny);
    22             a[x][y]='.';
    23         }
    24     }
    25     return ;
    26 }
    27 int main()
    28 {
    29     while(cin>>m>>n>>t){
    30         for(int i=0;i<n;i++){
    31             for(int j=0;j<m;j++){
    32                 a[i][j]='.';
    33             }
    34         } 
    35         cin>>sx>>sy>>ex>>ey;
    36         while(t--){
    37             int x,y;
    38             cin>>x>>y;
    39             a[x-1][y-1]='#';
    40         }
    41         a[sx-1][sy-1]='#';
    42         dfs(sx-1,sy-1);
    43         cout<<res<<endl;
    44     } 
    45     return 0;
    46 }
  • 相关阅读:
    MySQL DELAY_KEY_WRITE Option
    More on understanding sort_buffer_size
    myisam_sort_buffer_size vs sort_buffer_size
    share-Nothing原理
    GROUP_CONCAT(expr)
    Mysql History list length 值太大引起的问题
    Why is the ibdata1 file continuously growing in MySQL?
    洛谷1201 贪婪的送礼者 解题报告
    洛谷1303 A*B Problem 解题报告
    洛谷2142 高精度减法 解题报告
  • 原文地址:https://www.cnblogs.com/wydxry/p/10561180.html
Copyright © 2011-2022 走看看