$T1:数列$
所以这题和数列没什么关系
显然对于每个数答案是个单谷
直接三分,复杂度$O(nloga)$
然而这题其实不用三分,显然答案只在x的最小正整数解和最大负整数解时得到
$O(1)$可求,复杂度$O(n)$
$T2:数对$
考场上在(数据删除)打出"(数据删除)"后想到的解法
由于这题最终构建出来的序列$a$和$b$都不单调,我们不容易构造一个正确的排序方法保证拓扑序
那么我们可以换一个思路,不再一个一个加入新的数,而是把数插入已有序列
那么我们把数对按照$b$排序
设目前数组为$(10,2) (1,3) (2,5) (10,11)$ ($(a,b)$表示题中的$a,b$)
我们倒着扫排序后的数组,假设我们当前在处理$(10,2)$
由于$10$太大,$(10,2)$无法放在$(1,3),(2,5)$之前,只能放在$(10,11)$之前
然而直接用$(10,11)$转移$(10,2)$会导致丢失了$(1,3)(2,5)$两个数对,他们显然是可以做贡献的
但是我们发现由于我们按照$b$排序,使得当前处理数对的$b$一定是最小的
所以跳过部分的贡献即为跳过部分所有$a<=b_{i}$的点对的权值和
即$dp_{i}$=$maxlimits _{b_{j}geq a_{i}} (dp_{j}+sumlimits _{k=i+1,a_{k}<=b_{i}}^{j-1}w_{k})$
把dp变成后缀max则有
$dp_{i}$=$ dp_{j}+sumlimits _{k=i+1,a_{k}<=b_{i}}^{j-1}w_{k}$ $j$为第一个$b_{j}geq a_{i}$的点
主席树优化一下
$T3:最小距离$
以所有特殊点为起点跑最短路,同时维护最短路的起点是谁
然后枚举所有边,如果两端点是从不同特殊点到达,则更新答案