NOIP2018题解专栏
Day1 T1 铺设道路
题目大意:
给你一个序列a[i],每次可以操纵一个不含0的区间,使区间里的所有数减1
问最少几次操作可以使整个序列变为0。
额~~好像和2013Day1 T1一摸一样……
CCF已经坑到题都不想出了吗?不管了,直接贴代码吧……
Code
#include<bits/stdc++.h>
using namespace std;
int read(){
int res=0,fl=1;
char r=getchar();
for(;!isdigit(r);r=getchar())if(r=='-')fl=-1;
for(;isdigit(r);r=getchar())res=(res<<3)+(res<<1)+r-48;
return res*fl;
}
const int Maxn=2e5+10;
int a[Maxn];
int main(){
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
int n=read();
long long ans=0;
for(int i=1;i<=n;++i){
a[i]=read();
if(a[i-1]<a[i])ans+=a[i]-a[i-1];
}
printf("%lld
",ans);
return 0;
}
实测,这道题交到2013D1T1积木搭建里,改都不用改也能A