竞赛
考级
#include<bits/stdc++.h> using namespace std; int main(){ int n,h,q=0,sum=0; cin>>n; for(int i=0;i<n;i++){ cin>>h; if(h>q){ sum+=h-q; } q=h; } cout<<sum; return 0; }
AC,交流电?
空降坐标:CP002621 来源:NOIP2013 提高组 请看代码
Lee Wen
把序列分成( a1a1a1 ,.. aiaiai )( ai+1ai+1ai+1 ,... ajajaj )......( akakak ,... ananan )多个非递减序列。 然后所有段中最大值的和减去除第一段外的段的最小值,化简一下,就出来了
AC君
SJZ08
自己写的题解,这题真的太 水 难了,我做了 两年半 一个小时才做出来(悲) 这也配提高?????? 简单! 奇怪的递归又增加了
ACOI
#include<bits/stdc++.h> using namespace std; int main(){ int n,l,a[100005],m,x,sum=0,b[100010]; b[0]=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=a[i]+b[i-1]; } cin>>m; for(int i=1;i<=m;i++){ cin>>x>>l; cout<<b[l]-b[x-1]<<endl; } return 0; }
Xavier
#include<bits/stdc++.h> using namespace std; int main(){ int n,a[100005],m,x,sum=0,b[100010]; b[0]=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=a[i]+b[i-1]; } cin>>m; for(int i=1;i<=m;i++){ cin>>x; cout<<b[x]<<endl; } return 0; }
#include<bits/stdc++.h> using namespace std; int main(){ int n,l,a[100005],d[100005],m,c,r; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ d[i]=a[i]-a[i-1]; } for(int i=1;i<=m;i++){ cin>>l>>r>>c; d[l]+=c; d[r+1]-=c; } for(int i=1;i<=n;i++){ a[i]=d[i]+a[i-1]; cout<<a[i]<<" "; } return 0; }
#include<iostream> using namespace std; int a,b[100001],c[100001],d=0,e; int main(){ cin>>a; for(int i=1;i<=a;i++){ cin>>b[i]; } for(int i=1;i<=a;i++){ e+=c[i-1]; c[i]=b[i]-e; if(c[i]>=0){ d+=c[i]; }else{ d+=0; } } cout<<d; return 0; }
139****1801
提交答案之后,这里将显示提交结果~