当前位置: 首页 > wzjs >正文

石柱网站制作自媒体发稿

石柱网站制作,自媒体发稿,获取360网站卫士后的真实ip,洪梅镇网站仿做2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

在这里插入图片描述

2025 A卷 100分 题型

本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式;
并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析;
本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分享》

华为OD机试真题《战场索敌》:


文章快捷目录

题目描述及说明

Java

python

JavaScript

C

GO


题目名称:战场索敌


知识点:深度优先搜索(DFS)、广度优先搜索(BFS)、逻辑处理
时间限制:1秒
空间限制:256MB
限定语言:不限


题目描述

有一个大小为N×M的战场地图,被墙壁 # 分隔成不同的区域。上下左右四个方向相邻的空地 . 属于同一区域,只有空地上可能存在敌人 E。要求统计地图中敌人数小于K的区域数量

输入描述

  • 第一行输入三个整数N、M、K,分别表示地图的行数、列数和目标敌人数阈值(N, M ≤ 100)。
  • 接下来输入一个N×M的字符数组,表示战场地图,包含字符 #(墙壁)、.(空地)、E(敌人)。

输出描述

  • 输出一个整数,表示敌人数小于K的区域数量。

示例
输入:

3 5 2  
..#EE  
E.#E.  
###..  

输出:

1  

说明

  • 地图被墙壁分为两个区域:左侧区域有1个敌人,右侧区域有3个敌人,仅左侧区域满足条件。

输入约束

  • 输入保证每个区域的敌人数量为非负整数。
  • 任意两个敌人位置不重叠。

Java

问题分析

题目要求统计战场地图中被墙壁分隔的各个区域中,敌人数小于给定阈值的区域数量。每个区域由上下左右相邻的空地(包括敌人所在位置)组成,我们需要遍历每个区域并统计其中的敌人数。

解题思路

  1. 输入处理:读取地图的行数、列数和阈值K,然后读取地图数据。
  2. 遍历地图:使用双重循环遍历每个地图位置。
  3. 区域标记与统计:对于每个未被访问且非墙壁的位置,使用广度优先搜索(BFS)遍历整个区域,统计区域内的敌人数量。
  4. 判断条件:如果当前区域的敌人数小于K,则计入结果。
  5. 输出结果:统计符合条件的区域数量并输出。

代码实现

import java.util.Scanner;
import java.util.Queue;
import java.util.LinkedList;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 读取输入参数 N, M, Kint N = scanner.nextInt();int M = scanner.nextInt();int K = scanner.nextInt();scanner.nextLine(); // 跳过换行符// 读取战场地图数据char[][] grid = new char[N][M];for (int i = 0; i < N; i++) {String line = scanner.nextLine().trim();for (int j = 0; j < M; j++) {grid[i][j] = line.charAt(j);}}// 标记数组,记录每个位置是否被访问过boolean[][] visited = new boolean[N][M];int count = 0; // 符合条件的区域数量// 方向数组,用于BFS遍历四个方向int[] dx = {-1, 1, 0, 0};int[] dy = {0, 0, -1, 1};// 遍历地图中的每个位置for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {// 如果当前位置是墙壁或已被访问,跳过if (grid[i][j] == '#' || visited[i][j]) {continue;}// BFS初始化Queue<int[]> queue = new LinkedList<>();queue.offer(new int[]{i, j});visited[i][j] = true;int cnt = 0; // 当前区域的敌人数// 如果当前起始位置是敌人,计数加1if (grid[i][j] == 'E') {cnt++;}// BFS遍历while (!queue.isEmpty()) {int[] curr = queue.poll();int x = curr[0];int y = curr[1];// 遍历四个方向for (int k = 0; k < 4; k++) {int nx = x + dx[k];int ny = y + dy[k];// 检查新位置是否合法且未被访问,且不是墙壁if (nx >= 0 && nx < N && ny >= 0 && ny < M && !visited[nx][ny] && grid[nx][ny] != '#') {visited[nx][ny] = true;// 如果是敌人,计数加1if (grid[nx][ny] == 'E') {cnt++;}queue.offer(new int[]{nx, ny});}}}// 判断当前区域的敌人数是否小于Kif (cnt < K) {count++;}}}// 输出结果System.out.println(count)
http://www.dtcms.com/wzjs/56252.html

相关文章:

  • 网站运营方案设计编程培训机构排名前十
  • 公司网站建设佛山哪家好吸引客人的产品宣传句子
  • 陕西做网站公司哪家好百度网盘网址
  • html中音乐网站怎么做永久不收费免费的聊天软件
  • 建网站被封了营销网站建设培训学校
  • 中企动力网站建设公司seo优化在线
  • 建设手机网站费用seo网上培训课程
  • 好企业网站河南郑州最近的热搜事件
  • wordpress无法显示图片广州seo优化电话
  • 贵州西能电力建设有限公司网站百度seo排名优化公司推荐
  • 三亚高端服务网站成品短视频app下载有哪些
  • 盗版做的最好的网站新网站seo外包
  • 广州英铭网站建设网站建设公司排名
  • wix网站做图片能折叠吗水果店推广营销方案
  • 在网站上做招聘版面网络推广大概需要多少钱
  • 怎么把网站做的更好2023年10月疫情还会严重吗
  • 专做婚纱店设计网站投稿平台
  • 百度小程序平台深圳白帽优化
  • 网站上的节日主题怎么做百度网站管理员工具
  • 西安 网站建设外包app推广刷量
  • wordpress网站导航菜单插件东莞seo技术
  • 环保网站建设公司长沙seo网站排名优化公司
  • 七牛云做网站网上营销策略有哪些
  • 网站的背景图怎么做关键词seo优化排名
  • 网站开发兼容网络广告的概念
  • 不会代码怎么做网站企业网址怎么申请
  • 模板网站会影响网站优化吗网站内容管理系统
  • 永久免费手机网站建设怎么做微信小程序
  • 金华网站建设seo软文怎么写比较吸引人
  • 网站众筹该怎么做网络营销工具介绍