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

B003 找循环节 建图 ABC167D

模板题: ABC167D 不需要建图
模板题:AWC Beta0025D 需要建函数图

这道题目需要先建图。建一个函数图 nxt 数组,建完后寻找循环节。这里重点讲解如何寻找循环节。

从起点出发在经过一条链后才可能进入到环中,所以这个图结构也可以称为基环树\(\rho\) 形图

关键是找到环的两个信息:尾巴长度和环大小。

具体算法解题流程为:

  1. 确定核心变量

    • vised :记录每个节点第一次被访问到时是第几步,可以使用数组或哈希表。
    • order:按照访问顺序,把经过的节点放进列表,即 \(\rho\) 形图的轨迹。
    • pos:当前所在节点,初始为题目给出的初始节点 S
    • step:即当前走过的总步数。
    vised = [-1] * (n + 1)
    pos = s
    step = 0
    order = []
    
  2. 模拟行走

    while vised[pos] != -1:  vised[pos] = steporder.append(pos)pos = nxt[pos]step += 1
    
  3. 计算环的信息

    由第 \(2\) 步可知,最后的 vised[pos] 就是环的起点。所以尾巴大小 tail_sizevised[pos]

    那环的大小 cycle_size 就是总长度减去尾巴大小了。

    tail_size = vised[pos]
    cycle_size = step - tail_size
    
  4. 计算 \(Q\) 步后的节点

    1. Q < tail_size

      要求的步数比尾巴还小,没有进入环的部分,直接在 order 里找第 \(Q\) 个即可。

    2. Q >= tail_size

      先加上尾巴的大小,然后对 Q - tail_size 进行取模,模数就是环的大小。

    if q < tail_size:ans = order[q]
    else:ans = order[tail_size + (q - tail_size) % cycle_size]
    
经过while循环后获得的环信息
http://www.jsqmd.com/news/492668/

相关文章:

  • CAN总线滤波秘籍:SJA1000的验收滤波器配置全解析(BasicCAN vs PeliCAN模式)
  • 短链接生成器架构解密:62 进制编码 + 分布式 ID,如何让 6 位字符支撑 568 亿个网址?
  • JetBrains IDE试用期管理工具:从痛点到解决方案的完整指南
  • Ollama部署Llama-3.2-3B避坑指南:常见问题与解决方案
  • 都在用 OpenClaw 跑 Skill,但你写的“技能”为什么总让 AI 频繁罢工?
  • uni.createInnerAudioContext音频播放全攻略:从基础使用到duration获取异常处理
  • 简单研究一下 shipfast 的收益排行榜上的 SaaS 网站都是干什么的(转)
  • 实时口罩检测-通用应用指南:智能考勤与公共卫生管理解决方案
  • 开箱即用:Hunyuan-MT 7B翻译镜像,原文输入→一键翻译→实时展示
  • 关于 Amazon Linux 2023 (AL2023) 默认情况下确实没有 /var/log/secure 文件的解决方法
  • Vivado 2024.2编译提速秘籍:实测32线程设置与16线程性能天花板
  • Spring AI + RAG 构建电商智能客服:从 PDF 文档解析到精准问答的全链路实战
  • gte-base-zh效果对比图谱:t-SNE+UMAP双视角展示中文语义空间结构
  • 酷狗音频转换器进阶指南:无损格式互转与批量处理技巧
  • 快速生成树协议 RSTP IEEE 802.1w
  • ANSYS APDL工具栏进阶玩法:用嵌套Toolbar实现多级菜单(2023版)
  • Grok3角色扮演功能实测:从家庭作业助手到18+模式,哪个最实用?
  • Stable Yogi Leather-Dress-Collection季节主题作品展:春夏秋冬皮革风尚
  • 【SLAM坐标系精讲】从像素到世界:四大坐标系与核心变换的实战解析
  • 第七章 回溯算法part03
  • 半导体器件物理基础:金半接触的能带理论与整流机制
  • Zotero数据同步全攻略:从基础配置到坚果云WebDAV优化
  • 生成树协议 STP IEEE 802.1D-1998
  • 基于天空星GD32F407的SYN6288E语音合成模块移植与驱动开发实战
  • 开箱即用!Ollama快速部署GLM-4.7-Flash,开启本地AI对话新体验
  • 学习C语言第24天
  • 2026年金融GEO监测系统选型攻略:4大主流工具深度测评,谁是实力天花板? - 小白条111
  • 第九周第二天
  • Window下Nginx
  • 黑丝空姐-造相Z-Turbo风格迁移效果:从古典油画到现代时尚的演绎