欢乐周末 (2025B卷

题目描述

小华和小为是很要好的朋友,他们约定周末一起吃饭。通过手机交流,他们在地图上选择了多个聚餐地点(由于自然地形等原因,部分聚餐地点不可达)。求小华和小为都能到达的聚餐地点有多少个?

输入描述

第一行输入两个整数 m 和 n,分别代表地图的长度和宽度(4 ≤ m, n ≤ 100)。

接下来 m 行,每行输入 n 个数字,表示地图的具体信息:

0:通畅的道路

1:障碍物(且仅 1 为障碍物)

2:小华或小为的位置(地图中必定有且仅有2个)

3:被选中的聚餐地点(非障碍物,数量 k 满足 1 < k ≤ 100)。

输出描述

  • 输出一个整数,表示小华和小为都能到达的聚餐地点数量,行末无空格。

    输入:
    4 4
    2 1 0 3
    0 1 2 1
    0 3 0 0
    0 0 0 0
    输出:
    2

说明 :地图中有两个聚餐地点(3),两人均可到达,故输出 2。

代码思路

java 复制代码
public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m=in.nextInt();
        int n=in.nextInt();
        int[][] nums = new int[m][n];
        for (int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                nums[i][j] =in.nextInt();
            }
        }
       boolean[][] v1=new boolean[m][n];
        boolean[][] v2=new boolean[m][n];
        int x=1;
        for (int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(nums[i][j]==2){
                    if(x==1){
                        dfs(nums,v1,m,n,i,j);
                        x++;
                    }else{
                        dfs(nums,v2,m,n,i,j);
                    }
                }
            }
        }
        int res =0;
        for (int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(nums[i][j]==3&&v1[i][j]&&v2[i][j]){
                    res++;
                }
            }
        }
        System.out.println(res);
    }
    public static void dfs(int[][] nums,boolean[][] visit,int m,int n,int x,int y){
        if(x<0||x>=m||y<0||y>=n||nums[x][y]==1||visit[x][y]){
            return;
        }

        visit[x][y] =true;

        dfs(nums,visit,m,n,x+1,y);
        dfs(nums,visit,m,n,x-1,y);
        dfs(nums,visit,m,n,x,y+1);
        dfs(nums,visit,m,n,x,y-1);
    }
}
相关推荐
用户979984807184 小时前
200 行代码写一个能跑的 AI Agent:不依赖任何框架,只靠 tool-calling 原理
算法
threerocks4 小时前
【Muse实战】X 流量作战室搭建保姆级教程 - 拥有你自己的运营团队
算法
GreenTea4 小时前
深度拆解 ScienceBuddy:如何用“双层递归自进化”构建高可靠科研 Agent Harness
前端·后端·算法
花椒技术4 小时前
2.46 秒生成 5 秒视频:拆解 H3 Max 的模型、推理栈与硬件协同
算法·音视频开发·视频编码
vivo互联网技术4 小时前
ART:妆容迁移框架,重新定义高保真妆容迁移 | ECCV 2026
人工智能·算法·图像识别
用户0441440924494 小时前
卫星信号模拟器里的四个坐标转换公式
算法
橘和柠5 小时前
阿里 open-code-review (AI代码审查工具)实战:安装、四层规则链、自定义规则格式与实测避坑
算法·面试
得物技术5 小时前
别再只卷向量检索了,得物交易搜索如何用“生成式”实现召回范式跃迁?
人工智能·算法·llm
罗西的思考5 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(4)--- Rollout实现细节
人工智能·算法
罗西的思考5 小时前
机器人 / 物理 Agent Harness 综合分析与对比:从「更强的模型」到「更好的系统」
人工智能·算法·机器学习