其他分享
首页 > 其他分享> > 洛谷 4393 序列问题

洛谷 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;
}

标签:洛谷,int,max,4393,下界,区间,MAXN,序列,include
来源: https://www.cnblogs.com/Pickupwin/p/15371551.html