洛谷 4393 序列问题
[BOI2007] Sequence 序列问题
题面
题解
贪心
考虑一个区间中max的贡献,它在区间端点则最少贡献一次,否则最少两次。除去这个max,剩下的区间是子问题。
这给出了一个解的下界,也给出了达到下界的方案。
解的值等于相邻两数max之和。
代码
//https://www.luogu.com.cn/problem/P4393
//2021-07-10 AliCCC
#include <cstdio>
#include <algorithm>
using std::max;
const int MAXN=1000111;
int N;
int A[MAXN];
int main(){
scanf("%d", &N);
for(int i=1;i<=N;++i) scanf("%d", &A[i]);
long long Ans=0LL;
for(int i=1;i<N;++i){
Ans+=max(A[i], A[i+1]);
}
printf("%lld\n", Ans);
return 0;
}