您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

填涂颜色(洛谷P1162题题解,Java语言描述)

星拱北辰 发布时间:2020-04-30 21:06:26 ,浏览量:0

题目要求

题目链接

在这里插入图片描述在这里插入图片描述

分析

这个题,很难直接确定那里是1这个边界并找到内部的0的,想想就很难受。

但是数学上有个思想叫 “正难则反” 不是吗?

我们不妨把所有0换成2,再从四条边上的每个点开DFS,把搜到的2全换成0,这种DFS不可能搜到内部的2(被一圈1围着),如此,巧妙的规避了“圈内”这个复杂的条件,简化了问题求解。

注意防越界!

AC代码(Java语言描述)
import java.util.Scanner;

public class Main {

    private static int num;

    private static byte[][] array;

    private static void dfs(int x, int y) {
        if (array[x][y] == 1) {
            return;
        } else {
            array[x][y] = 0;
        }
        if (x > 0 && array[x-1][y] == 2) {
            dfs(x-1, y);
        }
        if (x  0 && array[x][y-1] == 2) {
            dfs(x, y-1);
        }
        if (y             
关注
打赏
1660750074
查看更多评论
0.6184s