预处理的d[i][j]为第i块到第j点的答案

块外的暴力

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;
#define maxn 100100
#define maxs 320
int S,T;
int n,m,c;
vector<int> col[maxn];
int a[maxn];
int le[maxs],ri[maxs];
int d[maxs][maxn];
int rec,cas;
int op[maxs],cc[maxn];
int lab[maxn],num;
int ask(int x,int y){
int mid,l=-1,r=col[y].size();
while(l+1!=r){
mid=(l+r)>>1;
if(col[y][mid]>x)r=mid;
else l=mid;
}
return r;
}
inline int sum(int x,int y,int z){
return ask(y,z)-ask(x-1,z);
}
int in[maxn];
inline void put(int x){
if(lab[a[x]]!=cas){
op[++num]=a[x];
lab[a[x]]=cas;
cc[a[x]]=0;
}
cc[a[x]]++;
}
int query(int x,int y){
int ans=0,ss;
int l=in[x]+1;
num=0;
if(in[x]==in[y])for(int i=x;i<=y;i++)put(i);
else for(int i=x;i<=ri[in[x]];i++)put(i);
if(in[x]!=in[y]){
ans=d[l][y];
for(int i=1;i<=num;i++){
ss=sum(le[l],y,op[i]);
if(cc[op[i]]&1){
if(ss&1)ans++;
else if(ss)ans--;
}else{
if(ss&1);
else if(!ss)ans++;
}
}
}else for(int i=1;i<=num;i++)if(!(cc[op[i]]&1))ans++;
return ans;
}
int main(){
scanf("%d%d%d",&n,&c,&m);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
col[a[i]].push_back(i);
}
T=sqrt(n);
if(n-T*T>(T+1)*(T+1)-n)T++;
int now=0;
for(int i=1;i<=n;i++,now--){
if(!now)S++,now=T,le[S]=i,ri[S-1]=i-1;
in[i]=S;
}
ri[S]=n;
for(int i=1;i<=S;i++){
memset(cc,0,sizeof(cc));
rec=0;
for(int j=le[i];j<=n;j++){
if(cc[a[j]]){if(cc[a[j]]&1)rec++;else rec--;}
cc[a[j]]++;
d[i][j]=rec;
}
}
int lans=0;
for(cas=1;cas<=m;cas++){
int x,y;
scanf("%d%d",&x,&y);
x=(x+lans)%n+1;
y=(y+lans)%n+1;
if(x>y)swap(x,y);
lans=query(x,y);
printf("%d\n",lans);
}
}

转载于:https://www.cnblogs.com/wangyucheng/p/3626811.html

bzoj2821 作诗(Poetize)分块+二分相关推荐

  1. [BZOJ2821]作诗(Poetize)

    [BZOJ2821]作诗(Poetize) 试题描述 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗之后还要虐OI,于是SHY找来 ...

  2. BZOJ2821: 作诗(Poetize)

    2821: 作诗(Poetize) Time Limit: 50 Sec  Memory Limit: 128 MB Submit: 3300  Solved: 965 [Submit][Status ...

  3. BZOJ 2821: 作诗(Poetize) [分块]

    题意: N个数,Q组询问,每次问[l,r]中有多少个数出现正偶数次. 和上题一样呀呀呀 稍微改一改交上就行了 写错好多地方...要认真啊... #include <iostream> #i ...

  4. 2821: 作诗(Poetize)

    2821: 作诗(Poetize) Time Limit: 50 Sec  Memory Limit: 128 MB Submit: 2835  Solved: 814 [Submit][Status ...

  5. BZOJ 2821 作诗 分块

    BZOJ 2821 作诗 Description 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗 之后还要虐OI,于是SHY找来一 ...

  6. 腾讯国风AI虚拟人学会作诗书法,背靠开源模型SongNet

    5月21日,腾讯AI虚拟人艾灵再秀出新技能,首次展示AI作诗.AI书法等国风才艺,并与青年歌手白举纲跨次元合作,共同演唱国风新歌<百川千仞>. AI"艾灵"诞生于腾讯A ...

  7. 罗念梓(帮别人名字作诗)

    罗念梓(帮别人名字作诗) --代腾飞   2008年8月9日 于成都 罗郎羽扇伴纶巾 念诵诗文唱古今 梓桑莫问今何在 名满天下传乡音

  8. 月英爱耀承(帮别人名字作诗)

    月英爱耀承(帮别人名字作诗) --代腾飞   2008年4月14日 于成都 月色皎皎爱如霜 英光脉脉两凝望 耀燿一生相扶过 承旨幸福万年长

  9. 杨英(帮别人名字作诗)

    杨英(帮别人名字作诗) --代腾飞   2008年6月18日 于成都 杨门女将胜须眉 英姿飒爽捍国威 好评如流传千古 名留青史镌丰碑

最新文章

  1. python脚本设置linux环境变量_Linux环境变量export方法与修改文件方法的区别
  2. 三角形css_纯 CSS 实现绘制各种三角形(各种角度)
  3. 剑指offer 二进制1中的个数
  4. python mysqldb cursor_python中MySQLdb模块用法实例
  5. 如何将SmartDraw中的图形导出LATEX可用的EPS格式?
  6. java怎么捕捉除数异常_Java异常的捕获及处理---小总结
  7. 高通摄像头调试(OV8856)
  8. 图解ARP协议(二)ARP攻击原理与实践
  9. C++11 作用域内枚举
  10. carlife android 无线,carlife无线连接流程是什么
  11. MATLAB的full,matlab中sparse和full函数的使用
  12. Enterprise Library 4.1学习笔记3----安全应用程序块
  13. Q96:PT(3.3):大理石纹理(Marble Texture)
  14. ffmpeg AVFilter介绍
  15. native2ascii
  16. matlab hspice联合仿真,HSPICE TOOLBOX FOR MATLAB
  17. 提供全套Python教学资源和考试系统,全力打造良心服务
  18. PageHelper.startPage的使用
  19. (二)mybatisPlus实现ActiveRecord(AR)操作
  20. 微信公众平台开发(34)微相册

热门文章

  1. puppet(1.1-1.6)
  2. nagios监控oralce数据库的表空间大小
  3. android 接收SDCcard插拔的广播
  4. jboss4中手动部署EJB(jboss4.0.2+ejb2.0+j2sdk5.0+xpsp2)
  5. 通过子网掩码留一个ip_教大家如何判断俩个IP是不是在同一个网段?什么是子网掩码?...
  6. eclipse theia_Eclipse的Theia发布,缺少KubeCon,还有更多行业趋势
  7. 来自Curriki和SankoréWiki的免费教育资源
  8. 物联网思维导图_物联网将如何改变我们的思维方式
  9. 系统权限安全责任书_权限越大,责任越大
  10. 学习 | Spring Cloud Config 从入门到精通