本文共 903 字,大约阅读时间需要 3 分钟。
代码:
#include #include #include #include #include #include #define LL long longusing namespace std;const int N=100005;LL a[N],l1[N],l2[N],r1[N],r2[N];int main(){ //freopen("data.in","r",stdin); int n; while(cin>>n) { for(int i=1;i >a[i]; l1[0]=r1[0]=l1[n]=r1[n]=0; l2[0]=r2[0]=l2[n]=r2[n]=0; for(int i=1;i =2) l2[i]=a[i]+l2[i-1]-1; else l2[i]=0; } else { if(a[i]>0) l1[i]=a[i]+max(l1[i-1],l2[i-1])-1; else l1[i]=0; if(a[i]>=2) l2[i]=a[i]+l2[i-1]; else l2[i]=0; } } for(int i=n-1;i>=1;--i) { if(a[i]%2==1) { r1[i]=a[i]+max(r1[i+1],r2[i+1]); if(a[i]>=2) r2[i]=a[i]+r2[i+1]-1; else r2[i]=0; } else { if(a[i]>0) r1[i]=a[i]+max(r1[i+1],r2[i+1])-1; else r1[i]=0; if(a[i]>=2) r2[i]=a[i]+r2[i+1]; else r2[i]=0; } } LL ans=0; for(int i=0;i
转载于:https://www.cnblogs.com/liulangye/archive/2013/02/23/2923653.html