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

ARC115F Migration

有一棵 \(n\) 个节点的树,编号为 \(i\) 的点权值为 \(h_i\)

你有 \(k\) 个棋子,第 \(i\) 个棋子初始在编号为 \(s_i\) 的点上。你需要进行若干次移动,每次移动可以将一个棋子移到相邻的点上。特别的,多个棋子可以在同一个点上。你需要将第 \(i\) 个棋子移动到编号为 \(t_i\) 的点上。

设第 \(i\) 个棋子在编号为 \(p_i\) 的点上,我们定义当前状态的势能为 \(\sum\limits_{i=1}^{k} h_{p_i}\)。你需要最小化移动过程中势能的最大值。

\(1 \leq n,k \leq 2000\)\(1 \leq h_i \leq 10^9\)

草,学习了一下午发现理解错了。

我们不妨先定义一种严格的偏序关系:若 \(p_u < p_v\)\(p_u = p_v\)\(u < v\),则称 \(u\) 优于 \(v\)

\(dis(u,v)\)\(u\)\(v\) 路径上的最大权值。对于每个点 \(u\),我们考虑对于所有优于 \(u\) 的点 \(v\),求出使得 \(dis(u,v)\) 最小的 \(v\)。记 \(f_u=v\),且记 \(w_u=dis(u,v)\)。我们容易在 \(O(n^2)\) 的时间复杂度内求出所有的 \(f_u\)\(w_u\)

我们考虑对于初始状态 \(S\) 和目标状态 \(T\) 进行移动,我们希望每次移动后的势能减少。则每次移动选择某个状态的某个棋子,设其在编号为 \(u\) 的点上,则将其移动到 \(f_u\) 上。假设当前状态的势能为 \(X\),则过程中会产生的最大势能为 \(X-h_u+w_u\),移动后的势能为 \(X-h_u+h_{f_u}\)。我们对于所有不相同的 \(s_i\)\(t_i\) 加入堆,按照 \(w_u-h_u\) 的顺序操作即可。

细节见代码,复杂度 \(O(nk \log k)\)

谁家模拟赛把这个放 T2。

http://www.rkmt.cn/news/131848.html

相关文章:

  • 问卷设计还在 “拍脑袋”?虎贲等考 AI:让科研调研从 “盲目发问” 到 “精准赋能”
  • Windows系统文件dpx.dll损坏或丢失 下载修复
  • 2025年采购必看:高口碑快速卷帘门品牌榜单,洁净车间工程/洁净工作台/FFU/净化工作台/医疗装修工程/洁净棚/货淋室快速卷帘门厂商哪个好 - 品牌推荐师
  • still ace
  • CSP-J/S 2025 第一轮游记 _
  • 2025年实力盘点:引领行业趋势的家居装修公司,别墅装修/豪宅设计/家居装修/家居设计公司口碑推荐 - 品牌推荐师
  • 一文读懂字符与编码
  • Open-AutoGLM能否彻底取代SoapUI?基于12个真实场景的协同能力压测结果公布
  • day29打卡
  • cesium126,230911,Ce for Ue WMTS的编译流程:但 Cesium for Unreal 2.3.0已经实现了WMTS
  • 高可靠电子产品设计的IC选用和PCB设计
  • 《Docker Swarm实战:从入门到企业级生产部署》大纲【20251221】001篇
  • 12.21
  • 移动端体验差?兰亭妙微用户体验设计公司教你 6 招解锁高效界面设计
  • eDiary电子日记本(记录生活点滴)
  • Open-AutoGLM与UFT Mobile功能对标(9项核心能力实测数据曝光)
  • Thinkphp和Laravel电影交流网站--论文vue
  • Thinkphp和Laravel婚庆服务网站的设计与实现vue
  • py每日spider案例之快shou解析接口
  • Thinkphp和Laravel化妆品商城购物推荐系统vue
  • py每日spider案例之文本转语音接口
  • 为什么我开始习惯用博客记录一些学习与思考
  • Open-AutoGLM + JMeter组合拳,实现自动化压测的3倍效能提升
  • 【C/C++】X-Macro技术 配置宏
  • 【权威评测】Open-AutoGLM与Postman性能实测对比:响应速度、稳定性、扩展性全解析
  • 每日三题 11
  • 基于Java的固定资产智慧管理系统的设计与实现全方位解析:附毕设论文+源代码
  • 2025年浙江评价好的GEO品牌哪家好,deepseek优化/豆包优化/GEO优化服务/GEO品牌推荐榜单 - 品牌推荐师
  • CANN与机器视觉
  • Open-AutoGLM vs BrowserStack:3个关键场景实测,谁才是兼容性王者?