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

QOJ4795 Taxi

题意简述

给定一颗 \(n\) 个点的树,边有边权。有 \(m\) 个独立的乘客和 \(m\) 个独立的司机,每个人选一个节点。将乘客与司机匹配,使得距离之和最大。

求所有 \(n^{2m}\) 种可能情况的距离之和 \(\bmod 10^9+7\)

\(1\le n,m\le 2500\)

题解

考虑一条边的两个端点对应的子树,记其中一半包含 \(a\) 个乘客和 \(b\) 个司机,则这条边最多被算 \(\min(a,m-b)+\min(b,m-a)\) 次,考虑取到这个上界。

将乘客视为源点,司机视为汇点,即需要证明每个点流量平衡。若一个点有 \(A\) 个乘客,\(B\) 个司机,与其相连的所有子树集合为 \(S\),记 \(a_x,b_x\) 为子树 \(x\) 中乘客、司机的数量,则

\[\begin{aligned} &(A+\sum_{x\in S}\min(a_x,m-b_x))-(B+\sum_{x\in S}\min(b_x,m-a_x))\\ =&(A+\sum_{x\in S}\min(a_x+b_x,m)-b_x)-(B+\sum_{x\in S}\min(a_x+b_x,m)-a_x)\\ =&(A+\sum_{x\in S}a_x)-(B+\sum_{x\in S}b_x)\\ =&0 \end{aligned} \]

发现 \(\min(a,m-b)+\min(b,m-a)=\min\{a+b,2m-a-b,m\}\),于是直接 \(\mathcal O(nm)\) dp 就做完了。

http://www.jsqmd.com/news/33561/

相关文章:

  • 蓝牙耳机怎么连接电脑?【图文详解】蓝牙耳机连接电脑?蓝牙耳机能连接电脑吗?USB蓝牙适配器? - 详解
  • AI浪潮下的就业迷思:技术迭代还是泡沫破灭?
  • 洛谷 P4159
  • 25.11.6 DAG和拓扑排序
  • 2025-11-06 PQ v.Next日志记录
  • 数据库介绍,安装,配置
  • Spring BeanFactory 接口
  • 领码方案|微服务与SOA的世纪对话(3):方法论新生——DDD、服务网格与AI Ops的融合之道 - 实践
  • 遗留系统微服务改造(四):从单体到微服务的演进之路 - 详解
  • 备考笔记8
  • 不用Docker也能跑RustFS?Windows一键安装实测来了!
  • Spacy 词性 实体 依存关系等对应缩写
  • 洛谷 P2824
  • JavaSE——基础
  • [Python刷题记录]-只出现一次的数字-异或位运算-简单
  • 安装 PySide2/PySide6/PyQt5/PyQt6
  • 【Agent】 ACE(Agentic Context Engineering)源码阅读笔记---(3)关键创新
  • 在Mac中用vscode写java
  • HJ1350接口(环保报送清单)
  • 11月6号
  • 解决macOS升级到Tahoe后ssh-dss算法失效的问题
  • 20251106 正睿
  • 初识SQL语句
  • linux安装与命令
  • 25.11.6随笔联考总结
  • Cloudflare中的“托管质询”、“JavaScript质询“、”交互式质询”区别 - 狼人:
  • 数字识别模型
  • 完整教程:mysql表的操作——mysql表的约束
  • 洛谷 P5327
  • 完整教程:mysql表的操作——mysql表的约束