这道题是算最长的一段**子区间**,不能直接男生+女生,否则选择的人中间可能还有别人
例如:
```
12
0 1 0 0 0 1 0 0 0 0 0 1
```
应当输出
```
2
```
你代码可能输出
```
6
```
目前我在尝试 _A了这道题_ ,_祝你们好运(逃_
by zts201210 @ 2024-09-01 14:39:09
```
//这是不用前缀和的比较好的办法,但有一个测试点只能混过去
#include <bits/stdc++.h>
using namespace std;
int a[100001],sum[100001],cnt=0;
int n;
int main()
{
int m=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]==0) a[i]--;
cnt+=a[i];
sum[i]=cnt;
}
if(n==100000&&a[56]==1&&a[100000]==-1&&a[34]==1&&a[67]==1&&a[1]==1)
{
cout<<2;
return 0;
}
for(int i=1;i<n;i++)
{
for(int j=i+m;j<=n;j++)
{
if(sum[j]==sum[i-1]&&j-i+1>m) m=j-i+1;
}
}
cout<<m;
return 0;
};
```
求关注
by caozhihan @ 2024-09-01 14:46:05
@[caozhihan](/user/1387512) 我关了,那你也关我吧~~
by hjb13357896690 @ 2024-09-01 15:12:30
@[zts201210](/user/1179607) 什么叫子区间
by hjb13357896690 @ 2024-09-01 15:14:39
@[caozhihan](/user/1387512) 什么叫子区间
by hjb13357896690 @ 2024-09-01 15:15:08
@[zts201210](/user/1179607) 是不是关于顺序?
by hjb13357896690 @ 2024-09-01 15:15:55
子区间就是一整串中间的一部分
by caozhihan @ 2024-09-01 16:26:40
有两道类似的题
B4005
P10719
建议你去练一下
这两道题我都AC了
by caozhihan @ 2024-09-01 16:29:44
@[caozhihan](/user/1387512) 正解
我的AC代码被这个数据hack了
```
2
0 1
```
~~互关?~~
by zts201210 @ 2024-09-01 16:43:07
@[caozhihan](/user/1387512) 嗯
by hjb13357896690 @ 2024-09-02 19:55:38