牛客优先队列训练题 NOIP2018 道路铺设
虽然在牛客上分类是优先队列,但实际操作起来其实就只是一道纯贪心的题目,有点单调队列的感觉,每次找后面大于前面的,并加上后面的差值,O(n) 的时间复杂度就可过,不需要用到优先队列
上代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+7;
int n,a[maxn],ans=0;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(i>1 && a[i]>a[i-1])//这个操作有点多余,其实把a[0]赋值成0就可以啦
ans+=(a[i]-a[i-1]);
}
printf("%d",ans+a[1]);
return 0;
}