QOJ9901
相当于要求你的串是一堆后缀的公共前缀。
考虑让这个串更长是更好的,那么问题变成了如何求出这个串的最长长度。
先特判掉全 \(0\) 的情况,然后考虑二分求出最长长度。check 只需要使用哈希即可。
最后还需要看一下有没有 \(0\) 的位置不合法。
代码
QOJ9902
把 \(\min(|a_i-a_j|,|b_i-b_j|)\) 拆成 \(|a_i-a_j|+|b_i-b_j|-\max(|a_i-a_j|,|b_i-b_j|)\)。
前两项只需要分别排序即可算出,考虑最后一项实际上是 \((a_i,b_i),(a_j,b_j)\) 两个点的切比雪夫距离。那么把 \(x\leftarrow\dfrac{x+y}{2},y\leftarrow\dfrac{x-y}{2}\) 就变成了求新的两点的曼哈顿距离。
曼哈顿距离的式子和原式的前两项是相同的,仍然可以直接排序算出。
代码
QOJ9903
鸽。
QOJ9904
鸽。
QOJ9905
鸽。
