40分求助
  • 板块P1605 迷宫
  • 楼主DENGKOICAT
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/2/25 17:16
  • 上次更新2023/11/5 02:43:00
查看原帖
40分求助
397866
DENGKOICAT楼主2021/2/25 17:16
#include<bits/stdc++.h>

using namespace std;
const int px[4] = {1,-1,0,0};
const int py[4] = {0,0,1,-1};
int pos_goal[2];
int pos_begining[2];
int pos_obstacle[2];
int mline, mlist,mnum,ans=0;
bool maps[6][6]={0};
void search(int x,int y){
    maps[x][y] = 1;
    if(x==pos_goal[0]&&y==pos_goal[1])
        ans++;
    for (int i = 0; i < 4; i++){
        if(maps[x+px[i]][y+py[i]]==0&&(x+px[i])>=1&&(x+px[i])<=mlist&&(y+py[i])>=1&&(y+py[i])<=mline)
            search(x + px[i], y + py[i]);
    }

}
int main(){
    cin >> mline >> mlist>>mnum;
    cin >> pos_begining[0] >> pos_begining[1];
    cin >> pos_goal[0] >> pos_goal[1];
    for (int i = 0; i < mnum;i++){
        cin >> pos_obstacle[0] >> pos_obstacle[1];
        maps[pos_obstacle[0]][pos_obstacle[1]] = 1;
    }
    search(pos_begining[0], pos_begining[1]);
    cout << ans;
    //system("pause");
    return 0;
}
2021/2/25 17:16
加载中...