社区讨论

这多少真的有些离谱吧

P7252[JSOI2011] 棒棒糖参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@miersl31
此快照首次捕获于
2025/11/26 00:08
3 个月前
此快照最后确认于
2025/11/26 10:18
3 个月前
查看原帖
不是这份暴力代码只是加了卡时,就活活通过了此题。
笑点解析:循环最多只执行80遍。
不知道这算不算讨论区题解啊,不要举报我,求求了。
下面是代码:
CPP
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
gp_hash_table<int,int>mp;
int n,m,c[100005],l,r,len,sh,tle=80,cnt;
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)scanf("%d",&c[i]);
    while(m--)
    {
        mp.clear();
        scanf("%d%d",&l,&r);
        len=r-l+1;
        sh=-1;
        cnt=0;
        for(int i=l;i<=r;i++)
        {
            mp[c[i]]+=1;
            cnt++;
            if(mp[c[i]]*2>len)
            {
                sh=c[i];
                break;
            }
            if(cnt>=tle)break;
        }
        if(sh==-1)printf("%d\n",0);
        else printf("%d\n",sh);
    }
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...