P1114 “非常男女”计划

原题链接

反思

前缀和处理区间和问题
观察到男女数相同以及输入数据01,有一种互斥相消的感觉,我们可以令0为-1,当某个区间段的和为零,即某两个前缀和相同时,记录其最长距离

code

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[100005]={0};
    int pres=0;
    map<int,int> q;
    q[0]=0;
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(!a[i])a[i]=-1;
        pres+=a[i];
        if(!q.count(pres)) q[pres]=i;
        else ans=max(ans,i-q[pres]);
    }
    cout<<ans<<endl;
    return 0;
}

posted @   纯粹的  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示