[最短路] [计数] [ARC090E] Avoiding Collision

posted on 2024-01-30 12:17:13 | under 题集 | source

考虑容斥:不相遇方案 \(=\) 总方案 \(-\) 相遇方案。

考虑求总方案,预处理 \(dis_i,dis2_i,cnt_i,cnt2_i\),表示
\(s/t\)\(i\) 的最短路长度 / 方案数,则总方案 \(= {cnt_{t}}^2\)

考虑给相遇方案分类,显然不能将每条边的方案相加,这样重合端点会算重,不妨分为点上相遇和边(不包括两端点)上相遇。

  1. 点:条件是 \(dis_i+dis2_i=dis_t\),方案为 \((cnt_i*cnt2_i)^2\)
  2. 边:条件可转换为存在某一时刻,使得两点均在边(不包括两端点)上,正确性显然,那么两点在该边的时间段分别为 \([dis_u,dis_u+w]\)\([dis2_v,dis2_v+w]\),判断区间相交即可。即:\(dis_u+w>dis2_v\)\(dis2_v+w>dis_u\)。方案数:\((cnt_u*cnt2_v)^2\)
posted @ 2026-01-13 11:26  Zwi  阅读(1)  评论(0)    收藏  举报