贪心证明
假设现在有一个坑,但旁边又有一个坑。
你肯定会选择把两个同时减1;
那么小的坑肯定会被大的坑“带着”填掉。
大的坑也会减少a[i]-a[i-1]的深度,可以说是“免费的”;
所以这样贪心是对的
#include<iostream>
using namespace std;
int n, arr[100005];
long long ans;
int main()
{
cin >> n;
for (int i = 1; i <= n; i++) cin >> arr[i];
for (int i = 2; i <= n; i++)
if (arr[i] >= arr[i - 1])ans += (arr[i] - arr[i - 1]);//***************核心
cout << ans+arr[1] << endl;//+arr[1]
return 0;
}
over~