Advertisement

牛客周赛 Round 51 小红数组(线段树)

阅读量:

小红的数组问题解析

采用线段树进行编写,若本题中没有abs函数,其解法与之前完成的 你能回答这些问题吗 题目存在相似之处,且更为简便。然而,本题中加入了abs函数,此时该如何应对?仅仅多了一个abs函数,我们不妨尝试将其取反,这样便能够满足abs的条件。对于abs(x),x可以是正负x的任意一种情况,因此最终的答案应为取反前与取反后的最大值。

复制代码
    //建立线段树
    
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    
    using namespace std;
    
    #define int long long
    
    const int N = 5e5+10;
    
    struct E{
    int l,r;
    int ms1,ms2;
    int ls1,ls2;
    int rs1,rs2;
    int sum1,sum2;
    }tr[N<<2];
    int n,m;
    int a[N],b[N];
    
    void pushup(E& root,E& left,E& r

全部评论 (0)

还没有任何评论哟~