全部评论 7

  • 磁铁节,师童用了我的代码:

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    int T,n,Q,a[200005],cnt[1000005],ans[200005],block,i,l,r,cur;
    struct query
    {
    	int l,r,id;
    }q[200005];
    bool cmp(query x,query y)
    {
    	if(x.l/block!=y.l/block)return x.l<y.l;
    	return x.r<y.r;
    }
    void add(int x)
    {
        cnt[a[x]]++;
        if(cnt[a[x]]&1)cur++;
        else cur--;
    }
    void del(int x)
    {
    	cnt[a[x]]--;
        if(cnt[a[x]]&1)cur++;
        else cur--;
    }
    signed main()
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	cin>>T;
    	while(T--)
    	{
    		cin>>n>>Q;
    		block=sqrt(n);
    		for(i=1;i<=n;i++)cin>>a[i];
    		for(i=1;i<=Q;i++)
    		{
    			cin>>q[i].l>>q[i].r;
    			q[i].id=i;
    		}
    		memset(cnt,0,sizeof(cnt)); 
    		sort(q+1,q+Q+1,cmp);
    		l=1;
    		r=0;
    		cur=0;
    		for(i=1;i<=Q;i++)
    		{
    			while(l<q[i].l)del(l++);
    			while(l>q[i].l)add(--l);
    			while(r<q[i].r)add(++r);
    			while(r>q[i].r)del(r--);
    			//cout<<cur<<" "<<q[i].id<<endl;
    			ans[q[i].id]=cur;
    		}
    		for(i=1;i<=Q;i++)
    		{
    			if(ans[i])cout<<"NO"<<endl;
    			else cout<<"YES"<<endl;
    		}
    	}
    	return 0;
    }
    

    他说他没学过莫队%%%%%%%%%

    2025-08-21 来自 北京

    1
  • 666我们模考做过一个加强版,qq 次询问,每次询问 [l,r][l,r] 内有多少个子区间中,所有出现的数出现次数=2

    2025-08-21 来自 北京

    0
  • 这题不应该是莫队吗,看看区间 [L,R][L,R] 异或值是否等于零,等于零就是都是偶数,反之就不是。

    2025-08-18 来自 北京

    0
  • d

    2025-08-14 来自 浙江

    0
  • 为什么帅同的马蜂还是火车头555

    2025-08-14 来自 浙江

    0
  • 2025-08-14 来自 浙江

    0
  • d

    2025-08-14 来自 浙江

    0

热门讨论