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

CF2154D

给定一棵大小为 \(n\) 的树,需要构造不超过 \(3n\) 条指令(有以下两种,且不能有连续两次 \(2\) 操作),使得一个在 \(1\) 的棋子一定能走到 \(n\)

  • \(1\),表示棋子会移动到一个和它相邻的节点,没有则不移动。
  • \(2 \ u\),表示摧毁节点 \(u\) 及其邻边,需保证棋子不在 \(u\)

\(1h\)

首先如何保证进行而操作时棋子不在 \(u\) ?

有一种自然的想法,因为树是一种二分图,按照深度的奇偶性分成两个集合,只需要保证此前执行的 \(1\) 操作次数的奇偶性与 \(u\) 的深度不一样即可。

我们应该先将除 \(1 \rightarrow u\) 的点先删干净。因为每次删一个叶子不会使棋子与 \(n\) 处于两个连通块内,所以优先删叶子节点,即深度较大的点。假设执行 \(c\) 次一操作,就删深度奇偶性为 \((c \& 1) \oplus 1\) 中最大的点即可,如果没有可以进行一操作然后再删深度为 \(c \& 1\) 的点,显然每个点不会花费超过 \(3\) 次操作。

对于路径上的点,先保证棋子不在 \(u\),即至少在 \(u\) 的儿子(通过至多一次 \(1\) 操作办到),然后删去 \(u\),再挪棋子即可。

时间复杂度:\(O(n)\)

http://www.zskr.cn/news/28763.html

相关文章:

  • 第十九天
  • 第十八天
  • [优先队列] P3611 [USACO17JAN] Cow Dance Show S 题解
  • 搜维尔科技将携手Xsens|Haption|Tesollo|Manus亮相IROS 2025国际智能机器人与系统会议
  • 处理空输入踩的坑
  • 66页实验题
  • 简单云计算算法--20251023
  • latex输入公式
  • 10.23《程序员修炼之道 从小工到专家》第二章 注重实效的途径 - GENGAR
  • 树状数组求逆序对
  • ExPRT.AI如何预测下一个将被利用的漏洞
  • AI元人文构想的跨学科研究:技术实现与人文影响分析——对自由与责任的再框架化(DeepSeek基于Ai元人文系列文章研究)
  • 日总结 16
  • 解码Linux文件IO之库的制作与应用
  • 20251023 正睿二十连测
  • 日志分析-IIS日志分析
  • Visual Studio 插件 - 喝水提醒 - 指南
  • 10/23
  • 玛哈特十一辊矫平机:把金属板送进“11 次节拍器” - 教程
  • 第3天(中等题+简单题 数组、滑动窗口)
  • ollama v0.12.2 版本更新详解:Qwen3 架构协助、Multi-Regex 分词器、新引擎前后缀匹配等功能升级
  • MySQL主从同步读写分离
  • SwiftUI NavigatorStack 导航容器
  • 深入解析:【仿生机器人】基于 GPT-SoVITS 的 发声器
  • PCL1.12 解决memory.h中EIGEN处中断问题
  • 20251023
  • Java常用机制 - SPI机制详解
  • 2025.10.23——2绿2蓝
  • 采用opencv来识别信用卡的号码
  • 精读《C++20设计模式》:重新理解设计模式系列 - 详解