MT2065 区间修改

简介: MT2065 区间修改

7f26c121be764ee6a0b9bb0892b2faf9.jpg

1f2013dd9bd34103968c1d1b9249e924.jpg

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
int n;
int a[N];
int dif;
int main()
{
    cin >> n;
    int ans1 = 0, ans2 = 0;
    // 操作[l,r],若+1即b[l]+1,b[r+1]-1,若-1即b[l]-1,b[r+1]+1
    // 即差分后,每一次操作只影响l和r+1(只影响两个数)
    // 所以每一次操作,会是一个正数和一个负数相互抵消
 
    // 即此题变为:有一个数组,每次使一个数-1,一个数+1。如果最后所有数都为0,求最少操作次数
    // 所以求差分后:max(正数总和,负数总和)即可
    cin >> a[0];
    for (int i = 1; i < n; i++)
    {
        cin >> a[i];
        dif = a[i] - a[i - 1]; // 差分,若=0,则工资相等
        if (dif > 0)
            ans1 += dif;
        else
            ans2 += dif;
    }
    cout << max(ans1, -ans2);
    return 0;
}


相关文章
MT2045 斐波那契,但是是字符串
MT2045 斐波那契,但是是字符串
MT3018 斐波那契数列
MT3018 斐波那契数列
|
23天前
|
C++ iOS开发
|
23天前
|
人工智能
MT3032 环形喂猪
MT3032 环形喂猪
|
23天前
|
人工智能 BI
MT3019 异或和的或
MT3019 异或和的或
MT2041 三角形的个数
MT2041 三角形的个数
|
1月前
|
算法 测试技术 C#
【线段树 有序映射】715. Range 模块
【线段树 有序映射】715. Range 模块

热门文章

最新文章