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

武进网站建设代理商中天建设集团有限公司排名

武进网站建设代理商,中天建设集团有限公司排名,房产大全,公众微信网站建设题目背景 小郑是一名大学生,她决定通过做志愿者来增加自己的综合分。她的任务是帮助游客解决交通困难的问题。洛斯里克城是一个六朝古都,拥有 N 个区域和古老的地铁系统。地铁线路覆盖了树形结构上的某些路径,游客会询问两个区域是否可以通过某条地铁线路直达,以及有多少条…

题目背景

小郑是一名大学生,她决定通过做志愿者来增加自己的综合分。她的任务是帮助游客解决交通困难的问题。洛斯里克城是一个六朝古都,拥有 N 个区域和古老的地铁系统。地铁线路覆盖了树形结构上的某些路径,游客会询问两个区域是否可以通过某条地铁线路直达,以及有多少条这样的线路。小郑需要快速回答这些问题,否则可能会失去志愿者工时。


问题描述

  1. 输入

    • N: 洛斯里克城的区域数。
    • M: 地铁线路的数量。
    • Q: 游客的询问数量。
    • N−1 条轨道:连接 N 个区域形成一棵树。
    • M 条地铁线路:每条线路覆盖树上某两点之间的最短路径。
    • Q 个游客询问:每个询问给出两个区域 (p,q),问它们是否在某条地铁线路上,如果是,统计有多少条这样的线路。
  2. 输出

    • 对于每个询问,输出满足条件的地铁线路数量。

解题思路

1. 树的基本性质

洛斯里克城的区域构成了一棵树(无环连通图),具有以下性质:

  • 任意两点之间有且仅有一条简单路径。
  • 可以通过深度优先搜索(DFS)或广度优先搜索(BFS)遍历树,计算每个节点的深度和父节点关系。
  • 最近公共祖先(LCA)可以帮助我们快速找到两点之间的路径。

2. 地铁线路的路径覆盖

每条地铁线路覆盖了树上某两点之间的最短路径。为了判断某个点对 (p,q) 是否被某条地铁线路覆盖,我们需要:

  • 找到地铁线路的起点和终点。
  • 计算这条线路覆盖的所有点对,并记录这些点对被多少条地铁线路覆盖。

3. 游客询问的处理

对于每个询问 $(p, q)$:

  • 如果 p>q,交换 p 和 q,确保点对有序。
  • 查询点对 (p,q) 被多少条地铁线路覆盖。

算法设计

方法一:

1. 构建树结构

代码

graph = defaultdict(list)for _ in range(N - 1):u, v = map(int, input().strip().split())graph[u].append(v)graph[v].append(u)

功能

  • 使用 defaultdict(list) 构建无向图的邻接表。

  • 每条轨道连接两个区域 u 和 v,因此需要将 v 添加到 u 的邻居列表中,同时将 u 添加到 v 的邻居列表中。

示例

假设输入如下轨道信息:

复制

1 2

2 3

1 4

构建的邻接表为:

作用

  • 邻接表表示了树的结构,方便后续通过 DFS 找到任意两点之间的路径。


2. 存储地铁线路

代码

subway_lines = []for _ in range(M):a, b = map(int, input().strip().split())subway_lines.append((a, b))

功能

  • 将每条地铁线路的起点 a 和终点 b 存储为元组 (a, b),并添加到列表 subway_lines 中。

示例

假设输入如下地铁线路:

作用

  • 地铁线路的起点和终点用于后续查找路径覆盖情况。


3. 深度优先搜索(DFS)

代码

def dfs(current, target, visited, path):visited[current] = Truepath.append(current)if current == target:return Truefor neighbor in graph[current]:if not visited[neighbor]:if dfs(neighbor, target, visited, path):return Truepath.pop()return False

功能

  • 使用递归实现深度优先搜索(DFS),从起点 current 开始,找到目标节点 target 的路径。

  • 参数说明:

    • current:当前访问的节点。

http://www.yayakq.cn/news/898990/

相关文章:

  • 建设公司董事长致辞网站范文最近的新闻大事
  • 新奇网站建设wordpress换主题 无法打开
  • 最专业的医疗网站建设wordpress可以干什么
  • 昆明网站开发培训机构贵阳网站开发zu97
  • pageadmin自助建站wordpress怎么做淘客网站
  • 网站及新媒体帐号内容建设网站上传不了图片是什么原因
  • 网站域名怎么免费获取找别人做网站怎么防止后门
  • 网站建设工程师职责说明济南专业的设计网站
  • 企业网站建设方案及报价公司做网站需要什么内容
  • 杭州西湖区网站建设wordpress cx udy主题
  • 济南手机网站制作昆明小程序开发联系方式
  • 新建的网站怎么做seo优化做高档衣服的网站
  • 班级的网站设计怎么做考研网站做刷词
  • 建设网站前需考虑哪些问题wordpress 网站变慢
  • 自己怎么做网站视频赚钱网络公司 建站 官方网站
  • 网站如何设置广告江西省建设工程安全质量监督管理局网站
  • 网站建设核心系统无法运行电脑wordpress
  • 管理网站开发教程常用的网站开发语言
  • 北京代做网站北京英文网站建设的原则
  • 元芳重庆网站建设华为云免费服务器
  • 黄岩城市建设发展集团网站注册网店需要多少费用
  • 网站结构化数据班级网站开发与设计
  • 丽水网站开发网站开发过程可分为
  • 做视频网站有什么wordpress建手机版目录6
  • 国外做名片的网站搜索引擎优化理解
  • 网站建设总体方案设计龙岩几个县
  • 汕头市建设局网站首页自己能网站建设
  • 网站源码建站视频教程可以免费发布广告的平台有哪些
  • 金融做网站手机版网页
  • wordpress无法登录界面seo标签优化