Description
给定一个长度为 (n) 的数列,每次可以选择一个区间使得其 (-1),求将所有数变为 (0) 的最少操作次数。
Solution
差分序列中所有正值的总和。
Another sol: 强行找到序列中最小的位置,然后删去之。显然每个位置只会被考虑一次。线段树维护即可。
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int x,y=0,n,ans=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
if(x>y) ans+=x-y;
y=x;
}
cout<<ans<<endl;
}