[2013年NOIP提高组] 积木大赛

分析:可以将其分割成两两相邻的(可以重复),假设先从左边拿,如果有连着一块拿走

如:9 8 5 8 9 1 5 3

先拿9,左边则没有,答案加9-0

再拿8,左边是9,拿走了9个,正好拿走了自己这部分

再拿5,左边是8,同上

再是8,左边是5,在拿到8完成前便断了,最多拿走5个,所以答案加8-5

#include<bits/stdc++.h>
using namespace std;
int a,b;
int ans=0;
int n;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d",&a);
ans+=a-min(a,b);
b=a;
}
printf("%d",ans);
}

 

posted @ 2022-08-15 16:31  TheMagician  阅读(62)  评论(0)    收藏  举报