文章

62

粉丝

0

获赞

0

访问

9.8k

头像
2020年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年11月11日 10:43
阅读数 87

(1)

距离D可化简为:D = 2 * (max(a,b,c) - min(a,b,c))

枚举a[i],对于每一个a[i],二分找到两侧最近的b,此时得到区间[a,b]或[b,a]

之后再二分第一个大于等于区间左端点的c[j],这样就可以得到选a[i]的最优答案ans = min(ans, D[i])

其中D[i] = min(2 * (max(a,b) - c[i-1]), 2 * (max(a,b,c) - min(a, b)));

 

(2)

 

int GetAns(int l, int r, Set<int>S3)

{

    int ans = INT_MAX;

    auto c = S3.lower_bound(l);

    if (c != S3.end()) {

        ans = min(ans, 2 * (max(b, *c) - a));

    }

    if (c != S3.begin()) {

        ans = min(ans, 2 * (b - c));

    }

    return ans;

}

 

int Solve(vector<int>S1, Set<int>S2, Set<int>S3)

{

    int ans = INT_MAX;

    for(auto &a : S1) {

        auto b = S2.lower_bound(a);

        if (b != S2.end()) {

            ans = m...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发