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

php网站开发实用技术练习题做公司网站的公

php网站开发实用技术练习题,做公司网站的公,网站备案核验单清晰,外贸网站建设 蚂蚁 深圳题目背景 小郑是一名大学生,她决定通过做志愿者来增加自己的综合分。她的任务是帮助游客解决交通困难的问题。洛斯里克城是一个六朝古都,拥有 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/786133/

相关文章:

  • 东莞网站推广策划活动seo整站优化一年价格多少
  • 网站条形码如何做域名解析网站打不开
  • 公司电商网站建设费用怎么记账移动互联网项目创业融资计划书
  • 做网站有哪些公司好seo销售是做什么的
  • 北京天仪建设工程质量检测所网站6找谁做网站比较好
  • 做网站需要一些什么工具病历邮寄怎么进入公众号
  • 网站 前台后台互联网医疗
  • 专业嵌入式软件开发番禺seo
  • 网站建设公司创业华为建站模板
  • ai智能建站成都市微信网站建设公司
  • 商务网站建设实验书wordpress文章管理模板
  • 如何在网站上做网盘应聘软件开发工程师简历
  • 建设企业网站首页济宁网站开发招聘
  • 温州网站建设有限公司深圳有几个区哪个区最繁华
  • 宁波网站建设方案联系方式提升wordpress性能的插件
  • 网站建qq群自己开公司
  • 哪个网站建站速度快工程招聘app都有哪些
  • 淮南矿业集团廉政建设网站文登做网站的公司
  • 排名好的网站建设dede修改网站密码
  • 正常开发一个网站需要多少钱wordpress woomerce
  • 南京网站制作招聘产品网站推广方案
  • 注册网站做推广滨海新区网站建设
  • 网站建设开发技术天津我有小创意设计校服图片
  • 支持wordpress的主机产品网站别人是如何做优化的
  • 网站页眉尺寸一键生成装修效果图app
  • 自助旅游网站开发分析报告plc编程培训机构
  • 东莞清溪镇做网站公司wordpress如何制作表单
  • 非营利组织网站建设会计分录seo网络营销技术
  • discuz做电影网站西安市住房和城乡建设官网
  • 全国火车站等级最新排名中国建设招标网是个假网站