• luogu4135 作诗


    这里

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    int n, c, m, a[100005], bel[100005], blc, f[325][325], sum[325][100005], cnt[100005];
    int uu, vv, ans;
    int query(int uu, int vv){
    	int re=0;
    	if(bel[uu]==bel[vv]){
    		for(int i=uu; i<=vv; i++)	cnt[a[i]] = 0;
    		for(int i=uu; i<=vv; i++){
    			cnt[a[i]]++;
    			if(!(cnt[a[i]]&1))	re++;
    			else if(cnt[a[i]]>2)	re--;
    		}
    	}
    	else{
    		re = f[bel[uu]+1][bel[vv]-1];
    		for(int i=uu; i<=bel[uu]*blc; i++)
    			cnt[a[i]] = sum[bel[vv]-1][a[i]] - sum[bel[uu]][a[i]];
    		for(int i=(bel[vv]-1)*blc+1; i<=vv; i++)
    			cnt[a[i]] = sum[bel[vv]-1][a[i]] - sum[bel[uu]][a[i]];
    		for(int i=uu; i<=bel[uu]*blc; i++){
    			cnt[a[i]]++;
    			if(!(cnt[a[i]]&1))	re++;
    			else if(cnt[a[i]]>2)	re--;
    		}
    		for(int i=(bel[vv]-1)*blc+1; i<=vv; i++){
    			cnt[a[i]]++;
    			if(!(cnt[a[i]]&1))	re++;
    			else if(cnt[a[i]]>2)	re--;
    		}
    	}
    	return re;
    }
    int main(){
    	cin>>n>>c>>m;
    	blc = sqrt(n);
    	for(int i=1; i<=n; i++){
    		scanf("%d", &a[i]);
    		bel[i] = (i - 1) / blc + 1;
    	}
    	for(int i=1; i<=n; i++){
    		if(i==(bel[i]-1)*blc+1){
    			for(int j=1; j<=c; j++)
    				sum[bel[i]][j] = sum[bel[i]-1][j];
    		}
    		sum[bel[i]][a[i]]++;
    	}
    	for(int i=1; i<=bel[n]; i++){
    		memset(cnt, 0, sizeof(cnt));
    		int now=0;
    		for(int j=(i-1)*blc+1; j<=n; j++){
    			cnt[a[j]]++;
    			if(!(cnt[a[j]]&1))	now++;
    			else if(cnt[a[j]]>2)	now--;
    			f[i][bel[j]] = now;
    		}
    	}
    	while(m--){
    		scanf("%d %d", &uu, &vv);
    		uu = (uu + ans) % n + 1;
    		vv = (vv + ans) % n + 1;
    		if(uu>vv)	swap(uu, vv);
    		ans = query(uu, vv);
    		printf("%d
    ", ans);
    	}
    	return 0;
    }
    
  • 相关阅读:
    mysql基础
    EM算法总结
    机器学习之PCA(1)
    C语言socket编程<二>
    计算机网络·实验一:
    机器学习之GMM-EM
    C语言socket编程<一>socket之Winsock API
    【翻译】java-TCP-socket网络编程2
    【翻译】java-TCP-socket网络编程1
    【翻译】Java IO 关系总览和整理
  • 原文地址:https://www.cnblogs.com/poorpool/p/8503809.html
Copyright © 2020-2023  润新知