题意:
有 n 个点、q 次操作。每一种操作为以下三种类型中的一种:
操作一:连一条 u→v 的有向边,权值为 w。
操作二:对于所有 i∈[l,r] 连一条 u→i 的有向边,权值为 w。
操作三:对于所有 i∈[l,r] 连一条 i→u 的有向边,权值为 w。
求从点 s 到其他点的最短路。1≤n,q≤105,1≤w≤109。
思路 :
首先可以想到暴力建图。于是会TLE。
看到区间 [l,r] 可以想到用前缀和、差分、线段树等数据结构优化建图。
但前缀和、差分不适合本题。线段树可以维护。
对于操作二要建一棵向下的线段树。对于操作散要建一棵向上的线段树。
所以总共建两棵。
算法详见线段树优化建图
代码是板子不放了
434

被折叠的 条评论
为什么被折叠?



