cf round 520 A
Posted lishengkangshidatiancai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf round 520 A相关的知识,希望对你有一定的参考价值。
这题虽然是a题,但还是有些坑的。
就是求出最长连续子段和。
如果连续子段和的开头是第一个数字且第一个数字是1,那不保留第一个数字就可以。
如果结尾是最后一个数字且最后一个数字是1000,那不保留最后一个数字也可以。
如果要分类讨论的话,会讨论到死。
怎么避免讨论到底是保留一个数字还是两个数字呢?
那就前面填一个0,最后多加一个1001就好啦。
最长子段和要减去2.
#include<bits/stdc++.h> using namespace std; int a[1001]; int l=1,r=1,maxl=1,maxr=1; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } a[++n]=1001; int pre=0; int len=1; int ans=0; for(int i=1;i<=n;i++) { if(a[i]==pre+1) { len++; pre++; } else { len=1; pre=a[i]; } ans=max(len-2,ans); } printf("%d ",ans); }
以上是关于cf round 520 A的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #520 (Div. 2) D. Fun with Integers
[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段
Codeforces Round #721 (Div. 2)ABC题解