题目链接

https://www.luogu.org/problem/P5019

解题思路

一道典型的贪心题。

假设从左往右填坑,如果第i个深与第i+1个,那么第i+1个就不需要额外填;

如果第i+1个大于第i个,就需要填i+1-i的深度,所以就相当于把>0的差分数组加起来就AC了。

AC代码

 #include<iostream>
#include<cstdio>
using namespace std;
int a[];
long long ans;
int main(){
int n;
cin>>n;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
if(a[i]>a[i-]){
ans+=a[i]-a[i-];
}
}
cout<<ans;
return ;
}

//NOIP2018提高组Day1 t1

05-11 22:20