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

山东鲁为建设集团网站企业网站首页

山东鲁为建设集团网站,企业网站首页,网站开发人员的水平,泸州房产网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


题目名称:报文回路


  1. 知识点:图论(邻接表遍历)、逻辑处理
  2. 时间限制:1秒
  3. 空间限制:256MB
  4. 限定语言:不限

题目描述

IGMP协议中,响应报文和查询报文是维系组播通路的两个重要报文。在已建立的组播通路中,相邻的HOST和ROUTER之间,ROUTER会向HOST发送查询报文,HOST收到后需回复响应报文以维持连接。若双向报文缺失,则通路异常。现给定抓取的报文列表,判断组播通路是否正常。

输入描述

  • 第一行:报文数量C(C ≤ 100)。
  • 后续C行:每行两个设备节点D1和D2,表示D1到D2的单向报文(空格分隔)。

输出描述

  • 通路正常输出True,否则输出False

示例
输入:

5  
1 2  
2 3  
3 2  
1 2  
2 1  

输出:

True  

Java

问题分析

我们需要判断组播通路是否正常。组播通路的正常条件是:所有相邻设备的双向报文必须存在。即,对于每一条存在的 D1→D2 的报文,必须存在对应的 D2→D1 的报文。


解题思路

  1. 输入解析:读取所有报文,存储为边列表,并构建邻接表。
  2. 邻接表构建:用 Map 记录每个节点到其相邻节点的集合。
  3. 双向检查:遍历所有边,检查其反向边是否存在。
  4. 结果判定:若所有边的反向边均存在,返回 True,否则 False

代码实现

import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int C = scanner.nextInt(); // 读取报文数量List<int[]> edges = new ArrayList<>(); // 存储所有报文边Map<Integer, Set<Integer>> adjacencyMap = new HashMap<>(); // 邻接表// 读取所有报文并构建邻接表for (int i = 0; i < C; i++) {int D1 = scanner.nextInt();int D2 = scanner.nextInt();edges.add(new int[]{D1, D2}); // 存储边adjacencyMap.computeIfAbsent(D1, k -> new HashSet<>()).add(D2); // 记录D1→D2}// 遍历所有边,检查反向边是否存在boolean isValid = true;for (int[] edge : edges) {int D1 = edge[0];int D2 = edge[1];// 检查D2→D1是否存在if (!adjacencyMap.containsKey(D2) || !adjacencyMap.get(D2).contains(D1)) {isValid = false;break;}}System.out.println(isValid ? "True" : "False");}
}

代码详解

  1. 输入处理

    • C 表示报文数量,后续读取 C 条边。
    • edges 列表存储所有输入的边(例如 [D1, D2])。
    • adjacencyMap 是邻接表,键为起始节点,值为所有可达节点的集合。
  2. 邻接表构建

    • adjacencyMap.computeIfAbsent(D1, k -> new HashSet<>()).add(D2);:若 D1 不存在于邻接表,创建空集合,然后将 D2 添加到集合中。
  3. 双向检查

    • 遍历所有边 edge,检查反向边 D2→D1 是否存在。
    • adjacencyMap.containsKey(D2):检查 D2 是否有出边。
    • adjacencyMap.get(D2).contains(D1):检查 D2 的出边是否包含 D1
  4. 结果输出

    • 若所有边的反向边均存在,输出 True,否则输出 False

示例测试

示例1
输入:

5
1 2
2 3
3 2
1 2
2 1

输出&#x

http://www.dtcms.com/wzjs/2708.html

相关文章:

  • 网站建设公司 青岛网站搭建需要多少钱?
  • 一锅汤资源分享网站建设大全网络宣传方式
  • 门户网站建设目标seo技术优化
  • 查询网站是否过期成品网站1688入口网页版怎样
  • 目前做公司网站有没有用ip网站查询服务器
  • 织梦营销型网站模板如何制作网页
  • 武汉制作企业网站外贸营销型网站制作公司
  • 在线生成个人网站北京网站优化效果
  • 网站创建风格域名查询
  • 郑州做网站建设公司网站seo文章
  • 厦门企业网站排名优化百度人工服务24小时电话
  • 做网站的服务商上海seo公司哪家好
  • 外贸云网站建设泉州全网营销推广
  • 网页站点怎么命名河北网站建设制作
  • 文化建设设计网站网站应该如何进行优化
  • 哪个网站做汽车保养比较好下载关键词推广软件
  • 做论坛网站数据库需多大徐州关键词优化排名
  • 做app网站需要什么百度文库首页
  • 网站维护的主要工作自己建网站要多少钱
  • 中港建设集团有限公司网站长沙网站优化排名推广
  • 福州p2p网站建设公司网站优化平台
  • 深圳城乡和住房建设局网站十大跨界营销案例
  • 沙漠风网站开发怎样网站运营专员
  • 珠海本地网站设计公司软文推广的100个范例
  • 公司做网站需要去公安备案吗电商软文范例
  • 比较还做的调查网站哪个搜索引擎最好用
  • 做网站的必要性做网站的外包公司
  • 常德网站开发服务千锋教育
  • 青浦做网站网页制作教程视频
  • 外国人学做中国菜 网站谷歌seo网站推广怎么做