NOIP模拟赛 czy的后宫3
【题目描述】
上次czy在机房妥善安排了他的后宫之后,他发现可以将他的妹子分为c种,他经常会考虑这样一个问题:在[l,r]的妹子中间,能挑选出多少不同类型的妹子呢?
注意:由于czy非常丧尸,所以他要求在所挑选的妹子类型在[l,r]中出现次数为正偶数,你懂得。
问题简述:n个数,m次询问,每次问[l,r]区间有多少个数恰好出现正偶数次
【输入格式】
第一行3个整数,表示n,c,m
第二行n个数,每个数Ai在[1,c]之间,表示一个Ai类型的妹子
接下来m行,每行两个整数l,r,表示询问[l,r]这个区间的答案
【输出格式】
有m行,表示第i次询问的答案
【样例输入】
5 5 3
1 1 2 2 3
1 5
3 4
2 3
【样例输出】
2
1
0
【数据范围】
共有10组测试数据
1-4组n,m=500,2000,5000,10000,c=1000
5-7组n,m=20000,30000,40000,c=10000
8-10组n,m=50000,80000,100000,c=100000
数据保证随机生成
同小z的袜子
1 #define LL long long 2 3 #include<iostream> 4 #include<cstdio> 5 #include<cstring> 6 #include<cmath> 7 #include<algorithm> 8 using namespace std; 9 10 const int MAXN=100000+10; 11 12 struct qnode 13 { 14 int l,r,id; 15 }qu[MAXN]; 16 17 int n,c,m,block; 18 int a[MAXN],pos[MAXN]; 19 LL num[MAXN],ans[MAXN],temp; 20 21 int read() 22 { 23 int x=0,f=1;char ch=getchar(); 24 while(ch<'0'||ch>'9'){if(ch=='-')f=-f;ch=getchar();} 25 while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} 26 return x*f; 27 } 28 29 bool cmp(qnode a,qnode b) 30 { 31 if(pos[a.l]==pos[b.l]) 32 return a.r<b.r; 33 return pos[a.l]<pos[b.l]; 34 } 35 36 void update(int x,int d) 37 { 38 int t=num[a[x]]; 39 num[a[x]]+=d; 40 if(t%2==1&&num[a[x]]%2==0&&num[a[x]]>0) temp++; 41 if(t%2==0&&num[a[x]]%2==1&&t>0) temp--; 42 } 43 44 int main() 45 { 46 n=read();c=read();m=read(); 47 block=(int)sqrt(n); 48 for(int i=1;i<=n;i++) 49 { 50 a[i]=read(); 51 pos[i]=(i-1)/block+1; 52 } 53 for(int i=1;i<=m;i++) 54 { 55 qu[i].l=read();qu[i].r=read(); 56 qu[i].id=i; 57 } 58 sort(qu+1,qu+m+1,cmp); 59 60 int pl=1,pr=0,id; 61 for(int i=1;i<=m;i++) 62 { 63 id=qu[i].id; 64 if(qu[i].l==qu[i].r) 65 { 66 ans[id]=0; 67 continue; 68 } 69 if(pr<qu[i].r) 70 for(int j=pr+1;j<=qu[i].r;j++) 71 update(j,1); 72 else 73 for(int j=pr;j>qu[i].r;j--) 74 update(j,-1); 75 pr=qu[i].r; 76 if(pl<qu[i].l) 77 for(int j=pl;j<qu[i].l;j++) 78 update(j,-1); 79 else 80 for(int j=pl-1;j>=qu[i].l;j--) 81 update(j,1); 82 pl=qu[i].l; 83 ans[id]=temp; 84 } 85 for(int i=1;i<=m;i++) 86 cout<<ans[i]<<endl; 87 return 0; 88 }
转载于:https://www.cnblogs.com/InWILL/p/6036073.html
NOIP模拟赛 czy的后宫3相关推荐
- 【noip模拟赛4】Matrix67的派对 暴力dfs
[noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...
- NOIP模拟赛csy2021/10/30
NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...
- NOIP 模拟赛 长寿花 题解
NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...
- NOI.AC NOIP模拟赛 第六场 游记
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- jyzy noip模拟赛5.22-2
不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...
- 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告
[WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...
- 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)
[题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...
- NOIP模拟赛套路技巧经验总结
前言 还有2天就NOIP了,之前做了这么多场模拟赛,是时候拿出来总结一下, 算是给自己一针强心剂. 列表 从最近的考试总结起(个人认为的重点,可能有重复,仅供参考): (转化很重要,一定要简化问题过后 ...
- 【NOIP 模拟赛】平均数 涂色游戏 序列题解
吐槽(完跪):神tmNOIP模拟赛,看到大题头根本高级数据结构什么的想都没想,结果死的很惨,第三题竟然要可持久化线段树,这NOIP我服了. 平均数: 这道题40分相信大家都能拿到,剩下的60分讲真考验 ...
最新文章
- Linux Kernel TCP/IP Stack — Socket Layer
- 【转】 指针函数与函数指针的区别
- mysql 乐观锁_使用Mysql乐观锁解决并发问题
- 方法重载与重写,返回类型
- TreeSet集合为什么要实现Comparable?
- python-字典和json
- python-extend用法
- linux环境包执行报错,linux环境下部署kettle,执行kitchen.sh文件报错后提示安装 libwebkitgtk 所需rpm包...
- [渝粤教育] 西南科技大学 物流系统规划与设计 在线考试复习资料
- 《纽约客》特写Jeff Dean与Sanjay:谷歌唯二11级工程师,同一台电脑上写代码
- sklearn入门——逻辑回归
- android 脸部识别之3D,这两款安卓手机也支持3D结构光人脸识别
- 5月10日12点,看雪.深信服2021 KCTF春季赛正式开赛!
- 卡奴、车奴、房奴,你是哪种?
- Prometheus+Alertmanager+webhook-dingtalk实现钉钉告警
- Random(二)什么是伪共享?@sun.misc.Contended注解
- 第七届无线大数据研讨会总结
- Verycd上.net一些教程,自己留着做备忘..
- DDoS会危害关键基础设施吗? “安全加”认为媒体搞错了方向 APT攻击才是杀手锏...
- 智利银行为数字货币交易所重开交易账户
热门文章
- 《微信公众平台开发最佳实践》—— 1.2 微信公众账号的注册
- 程序员转正述职报告_程序员个人述职报告范文4篇(整理版)
- Linux程序设计(常用Linux命令)
- LaTeX:使用bib插入文献
- java源文件在哪_java源文件由什么组成?
- 苏宁金科CTO肖军:如何让1000人+的团队持续打胜仗,从找人,到育人,到用人具体怎么做?...
- ionic android 证书,Ionic 5/Angular Android和iOS 指纹认证
- jieba分词词性对照表
- VBA学习笔记之单元格
- 南京毕业生租房补贴发票开具地点一览表