NO1P2018 T1铺设道路 | | (NO1P2013 积木大赛)

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,last=0,ans=0;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int x;scanf("%d",&x);
		if(x>last) ans+=(x-last);
		last=x;
	}
	printf("%d",ans);
	return 0;
} 

考完NOIPday1,整个人都不好了。。。。。<_>
把序列分成(a1,..ai)(ai+1,...aj)......(ak,...an)多个非递减序列。
然后所有段中最大值的和减去除第一段外的段的最小值,化简一下,就出来了

posted @ 2018-11-10 17:41  Dzzzzzz  阅读(170)  评论(0编辑  收藏  举报