解题思路
本题考查按边下标顺序的图上 DP,并用树状数组维护前缀最大值。p,q≤2×105,需要接近线性的做法。
- 下标必须递增,因此只需按输入顺序处理每条衔接,不会形成可用的环。
- 设当前衔接为 x→y、分值 s。它单独成链时长度为 1;若存在一条已处理、终点为 x、最后分值小于 s 的链,则可接在后面,长度为「该链边数 +1」。
- 对每个节点维护「以该点为终点、最后分值为某值」的最大边数。询问的是分值严格小于 s 的最大值,插入的是当前链的 (s, 边数)。
- 把每个节点入边分值离散化后,用树状数组维护前缀 max。整张图上树状数组长度之和为 O(q)。
- 自环、重边按同样规则处理;分值相等时不能相接。