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

P13536 [IOI 2025] 神话三峰(triples)(Part 1)

考虑对于 \(i<j<k\) 为神话三峰,那么 \(d_1=j-i,d_2=k-j,d_3=k-i\)。则高度需要满足:

\[H_i=j-i,H_j=k-j,H_k=k-i \]

\[\Rightarrow j=H_i+i,k=H_j+j,k-i=H_k \]

\[H_i=j-i,H_j=k-i,H_k=k-j \]

\[\Rightarrow j=H_i+i,k=H_j+i,H_k=k-j \]

\[H_i=k-j,H_j=j-i,H_k=k-i \]

\[\Rightarrow i=j-H_j,k=H_i+j,i=H_k-k \]

\[H_i=k-i,H_j=j-i,H_k=k-j \]

\[\Rightarrow k=H_i+i,j=k-H_k,i=j-H_j \]

\[H_i=k-i,H_j=k-j,H_k=j-i \]

\[\Rightarrow k=i+H_i,j=H_k+i,k=H_j+j \]

发现这几种情况的合法只有 \(O(n)\) 种情况,难点在于:

\[H_i=k-j,H_j=k-i,H_k=j-i \]

\[\Rightarrow i-H_i=j-H_j,i+H_i=k-H_k,H_j+j=H_k+k \]

即设 \(u_i=i-H_i,u^{\prime}_i=i+H_i\) ,则我们在 \(u_i,u^{\prime}_i\) 间连一条边权为 \(i\) 的边,我们能够找到的所有三元环即为可能答案。补一下无向图三元环计数的方法:

我们考虑每一个节点度数 \(d_u\),然后将其建成一个新图。考虑若 \(d_u\neq d_v\),则让度数小的跟度数大的连边,否则让编号小的与编号大的连边。那么有结论:新图一定是一个 DAG,且每个点的出边不超过 \(O(\sqrt{m})\)

我们考虑如果存在一个环 \(a\rightarrow b\rightarrow c\rightarrow a\),不妨假设 \(a<b<c\)。那么如果三个点在原图中度数相同则一定不存在 \(c\rightarrow a\) 的连边。那么如果度数不同那么三条边中一定会存在一个满足度数更大连边。
那么考虑最大度数。如果在原图中 \(d_u<\sqrt{m}\),那么新图中一定不会超过 \(\sqrt{m}\)。如果 \(d_u\geq \sqrt{m}\),那么只有当 \(d_v\geq d_u\) 才有可能有连边 \(u\rightarrow v\)。而又因 \(\sum d_u=2m\),故 \(d_v\geq d_u\) 也只有 \(\sqrt{m}\) 级别。

这样我们发现三元环在新图中就满足 \(u\rightarrow v\rightarrow w,u\rightarrow w\)。那么我们枚举 \(u\),打一个时间戳在 \(v\) 上,之后枚举每一个 \(v\) 的出边 \(w\)。为什么时间复杂度正确?这里看起来还是 \(O(n(\sqrt{m})^2)\)的。我们考虑在一层循环内枚举边 \((u,v)\),那么会有贡献 \(d^{\prime}_v\),而每一条边会在外层被遍历一次,那么复杂度就是 \(O(m\sqrt{m})\) 的。

故这样我们最后把所有的三元组拿下来重新去重判一下合法即可。

http://www.gsyq.cn/news/58457.html

相关文章:

  • 深入解析:HiTooler File Finder: macOS上速度碾压Spotlight,媲美「Everything」的文件搜索神器
  • 29232428 2025-2026-1 《网络与系统攻防技术》实验六
  • 【做题记录】HZOJ 多校-数论/多校-字符串/多校-图论Ⅲ
  • 2025-11-23
  • 2025软件工程L班
  • 使用Ansible批量安装JDK
  • static 静态变量
  • 2025-09-10-Wed-T-Milvus
  • 2025.11.23
  • java linux服务器
  • 贪心做题记录-2
  • 2025 年上海金蝶软件定制开发代理商推荐榜出炉
  • 【开发者导航】全自动 AI 视频创作与发布工具:LuoGen-agent - 教程
  • 截图工具
  • 人工智能之数据分析 numpy:第十二章 数据持久化
  • anchor
  • 2025 年上海最靠谱的金蝶代理商:聚焦官方授权与深度适配,这家最高级铂金伙伴值得选
  • 单克隆抗体在药物研发和治疗领域的应用前景
  • 2025 年上海金蝶软件代理商推荐榜:上海宝蝶信息科技有限公司全行业覆盖、金蝶最高级铂金伙伴
  • Jetson Orin Nano super -3 NVIDIA Jetson 平台的技术架构和NVIDIA JetPack
  • 学习DA
  • 候选区域
  • 数据结构理论知识 - 指南
  • 大盘风险控制策略分析报告 - 2025年11月21日
  • 前端八股文-高频面试题 - 教程
  • 2024软工K班结对编程任务
  • 实用指南:各种各样的Self-attention学习上(第二十周周报)
  • 20251123 之所思 - 人生如梦
  • 人工智能之数据分析 numpy:第十章 副本视图
  • Node.js 端的接口签名处理