这题还有一个性质?
查看原帖
这题还有一个性质?
727888
LCATreap楼主2023/1/1 11:39

rt,就是对于断点 ii 的选择,答案在区间 [0,n][0,\,n] 上是上凸函数?

具体是怎么发现的就是在猜到这个规律之后,本人没有使用前缀和的方法,而是直接打了一个三分,比较意外的是直接过了。所以这个结论有什么证明的方法吗?

给一下三分的核心代码。

check 求的是断点为 kk 时的答案。

#define re register
typedef long long int ll;
ll a[maxn], b[maxn]; int n;
inline __int128 check(int k) {
    __int128 s1 = 0, s2 = 0;
    for (re int j = 1; j <= k; j++)s1 += a[j] * a[j], s2 += a[j];
    for (re int j = k + 1; j <= n; j++)s1 += b[j] * b[j], s2 += b[j];
    s1 *= n; s2 = s2 * s2; return s1 - s2;
}

三分的具体核心代码:

while (l < r) {
        mid1 = l + (r - l) / 3;
        mid2 = r - (r - l) / 3;
        if (check(mid1) <= check(mid2))l = mid1 + 1;
        else r = mid2 - 1;
    }
    print(check(l));
2023/1/1 11:39
加载中...