文章

27

粉丝

86

获赞

10

访问

29.5k

头像
Minimum_Sum 题解:C++
P1910 华东师范大学2022年机试
发布于2023年8月20日 10:34
阅读数 957

C++

题目可能没有描述清楚

你有一个序列a1,a2,...,an,然后给你一些区间[l,r]。对于每一个区间,你需要找到下式的最小值,对于所有可能的x,∑i=l...r |x-ai|

#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>
using namespace std;
int main(){
    int N;
    cin >> N;
    vector<int> a;
    int ai;
    for(int i = 0; i < N; i++){
        cin >> ai;
        a.push_back(ai);
    }
    sort(a.begin(), a.end());
    int Q;
    cin >> Q;
    int l, r, midIndex;
    double mean;
    for(int i = 0; i < Q; i++){
        cin >> l >> r;
        l -= 1;
        r -= 1;
        if((r - l) % 2 == 0){
            midIndex = (r + l) / 2;
        }
        else{
            for(int i = 0; i < a.size(); i++){
                mean += a[i];
            }
            mean /= a.size();
            // cout << mean << endl;
            if(fabs(mean - a[(r + l) / 2]) > fabs(mean - a[(r + l) / 2 + 1])){
              ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发