普及练习场 深度优先搜索 迷宫

来源:互联网 发布:windows无法删除密码 编辑:程序博客网 时间:2024/06/09 20:42

题目链接

题意理解

这题目按道理来说就是随便写,但是翻车了一下,没有1A,是因为,这题目有点坑。。。终点位置会给你放置一个障碍物 我的dfs有一点点问题,但是我已经重写过了。

代码

import java.util.Scanner;public class Main {    static int[][] changes = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 } };    static int N;    static int M;    static boolean[][] canPass;    static boolean[][] visited;    static int sx;    static int sy;    static int fx;    static int fy;    static int T;    static int cnt = 0;    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        N = scanner.nextInt();        M = scanner.nextInt();        canPass = new boolean[N][M];        visited = new boolean[N][M];        for (int i = 0; i < N; i++) {            for (int j = 0; j < N; j++) {                canPass[i][j] = true;                visited[i][j] = false;            }        }        T = scanner.nextInt();        sx = scanner.nextInt();        sx -= 1;        sy = scanner.nextInt();        sy -= 1;        visited[sx][sy] = true;        fx = scanner.nextInt();        fx -= 1;        fy = scanner.nextInt();        fy -= 1;        for (int i = 0; i < T; i++) {            int t1 = scanner.nextInt();            t1 -= 1;            int t2 = scanner.nextInt();            t2 -= 1;            canPass[t1][t2] = false;        }        scanner.close();        for (int i = 0; i < changes.length; i++) {            dfs(sx, sy, changes[i][0], changes[i][1]);        }        System.out.println(cnt);    }    static void dfs(int x, int y, int dx, int dy) {        int tempX = x + dx;        int tempY = y + dy;        if (tempX < 0 || tempX >= M || tempY < 0 || tempY >= N) {            return;        }        if (visited[tempX][tempY]) {            return;        }        if (!canPass[tempX][tempY]) {            return;        }        if (x + dx == fx && y + dy == fy) {            cnt++;            return;        }        for (int i = 0; i < changes.length; i++) {            visited[tempX][tempY] = true;            dfs(tempX, tempY, changes[i][0], changes[i][1]);            visited[tempX][tempY] = false;        }    }}

欢迎加入“不会算法一群菜鸟”,群号是⑥⑥①⑨②2025,这是我设置的一道很低的门槛用来阻止广告的。入群的验证暗号是:我爱编译原理

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 桐城市招聘网 桐城市房价网 桐城房地产交易网 桐城房产信息网 桐城网在线 安徽桐城房地产信息网 桐城房地产信息网查询 桐城团购网 桐城征婚网 安徽桐城房产信息网 桐城网下载 安徽桐城教育网 桐城装修网 桐城招聘信息网 桐子叶粑粑 桐林逸景 林奶桐 桐子树苗多少钱一株 桐山涟 烧桐木 桐岛莉乃 桐岛桃子 身高180的桐岛 我在南海当岛主 剑士桐人0 桐洲岛一日游多少钱 桐洲岛皮划艇 桐庐县职业技术学校 杭州桐庐县 杭州市桐庐县 浙江桐庐县 桐木关金骏眉 桐木关在哪里 桐木村 桐木板 桐木板价格 铜板纸价格 铜版纸图片 铜版纸 铜版纸是什么 铜版纸批发 铜板纸是什么纸