[前缀和] Jzoj P3913 艰难的选择 题解 代码
- 这题挺水的,跑一个前缀和
- 那么就可以暴力枚举长度,然后暴力判断(长度与前缀和的差是两倍关系)
- 最后,加个快读或吸一口臭氧就可以过了
代码
1 #include <cstdio> 2 #include <iostream> 3 #define N 100010 4 using namespace std; 5 int n,ans,a[N],sum[N]; 6 int main() 7 { 8 scanf("%d",&n); 9 for (int i=1;i<=n;i++) scanf("%d",&a[i]),sum[i]=sum[i-1]+a[i]; 10 for (int i=1;i<=n-ans;i++) 11 for (int j=i+ans+1;j<=n;j+=2) 12 if ((sum[j]-sum[i-1])*2==j-i+1) ans=max(ans,j-i+1); 13 printf("%d",ans); 14 }