BZOJ 3236[AHOI2013]作业
题面:
3236: [Ahoi2013]作业
Time Limit: 100 Sec Memory Limit: 512 MB
Submit: 1704 Solved: 685
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2 2
1 2 1 3
1 2 1 1
1 3 1 3
2 3 2 3
Sample Output
1 1
3 2
2 1
HINT
N=100000,M=1000000
离线莫队处理,对权值分块。
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<cmath> 6 #define N 100055 7 #define M 1000066 8 using namespace std; 9 int gy[N],be[N],c[M],cc[M],n,m,nn,maxn,tot,num[N]; 10 struct Query{ 11 int l,r,a,b,id,ans1,ans2; 12 }qr[M]; 13 bool cmp1(Query a,Query b){ 14 if(be[a.l]==be[b.l]) 15 return a.r<b.r; 16 return be[a.l]<be[b.l]; 17 } 18 bool cmp2(Query a,Query b){ 19 return a.id<b.id; 20 } 21 int lowbit(int x){ 22 return x&(-x); 23 } 24 void add(int x,int y){ 25 int xx=x; 26 if(y==1&&++num[xx]==1){ 27 while(xx<=maxn){ 28 cc[xx]++; 29 xx+=lowbit(xx); 30 } 31 } 32 if(y==-1&&--num[xx]==0){ 33 while(xx<=maxn){ 34 cc[xx]--; 35 xx+=lowbit(xx); 36 } 37 } 38 while(x<=maxn){ 39 c[x]+=y; 40 x+=lowbit(x); 41 } 42 } 43 int query(int x){ 44 if(x>maxn) x=maxn; 45 int ans=0; 46 while(x){ 47 ans+=c[x]; 48 x-=lowbit(x); 49 } 50 return ans; 51 } 52 int query1(int x){ 53 if(x>maxn) x=maxn; 54 int ans=0; 55 while(x){ 56 ans+=cc[x]; 57 x-=lowbit(x); 58 } 59 return ans; 60 } 61 void work(){ 62 int l=1,r=0;tot=0; 63 for(int i=1;i<=m;i++){ 64 while(l<qr[i].l) add(gy[l++],-1); 65 while(l>qr[i].l) add(gy[--l],1); 66 while(r<qr[i].r) add(gy[++r],1); 67 while(r>qr[i].r) add(gy[r--],-1); 68 qr[i].ans1=query(qr[i].b)-query(qr[i].a-1); 69 qr[i].ans2=query1(qr[i].b)-query1(qr[i].a-1); 70 } 71 } 72 int main() 73 { 74 scanf("%d%d",&n,&m); nn=(int)sqrt(n); 75 for(int i=1;i<=n;i++){ 76 scanf("%d",&gy[i]); 77 be[i]=(i-1)/nn+1; 78 maxn=max(maxn,gy[i]); 79 } 80 int l,r,a,b; 81 for(int i=1;i<=m;i++){ 82 scanf("%d%d%d%d",&l,&r,&a,&b); 83 qr[i].l=l; qr[i].r=r; 84 qr[i].a=a; qr[i].b=b; 85 qr[i].id=i; 86 } 87 sort(qr+1,qr+m+1,cmp1); 88 work(); 89 sort(qr+1,qr+m+1,cmp2); 90 for(int i=1;i<=m;i++) 91 printf("%d %d\n",qr[i].ans1,qr[i].ans2); 92 return 0; 93 }
BZOJ 3236
转载于:https://www.cnblogs.com/radioteletscope/p/7241903.html
BZOJ 3236[AHOI2013]作业相关推荐
- [BZOJ 3236] [Ahoi2013] 作业 [BZOJ 3809] 【莫队(+分块)】
题目链接: BZOJ - 3236 BZOJ - 3809 算法一:莫队 首先,单纯的莫队算法是很好想的,就是用普通的第一关键字为 l 所在块,第二关键字为 r 的莫队. 这样每次端点移动添加或删 ...
- Bzoj3236:[Ahoi2013]作业:莫队算法+树状数组
题目链接:3236:[Ahoi2013]作业 这题-- 很水的一道莫队,只要用一个树状数组维护数值出现的前缀和就行就行 然而-- 可怜的我真是T得蛋疼了QAQ 先是写了一发裸莫队,T 卧槽T了? 快速 ...
- P4396 [AHOI2013]作业 cdq分治
传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的数列aaa,有qqq个询问,每次询问[l,r][l,r][l,r]中值域在[a,b][a,b][a,b]中的数出现的次数和在[a,b][ ...
- P4396 [AHOI2013]作业
P4396 [AHOI2013]作业 题目描述 详见:P4396 [AHOI2013]作业 solution 莫队+树状数组的裸题(莫队+分块,CDQ分治都可以,莫队+线段树大概需要卡常). 时间复杂 ...
- BZOJ 3237: [Ahoi2013]连通图
3237: [Ahoi2013]连通图 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 1161 Solved: 399 [Submit][Stat ...
- BZOJ3236 [Ahoi2013]作业
昨天晚上做的...差错一直查到今天= = 最后没办法问管理员要了数据才知道原来ans数组开小了233,简直沙茶 这道题不就是裸的莫队嘛= =||| 只要用树状数组维护当前的两种个数即可. 1 /*** ...
- BZOJ 3238: [Ahoi2013]差异 [后缀数组 单调栈]
3238: [Ahoi2013]差异 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 2326 Solved: 1054 [Submit][Stat ...
- bzoj 3238: [Ahoi2013]差异(后缀数组+单调栈)
3238: [Ahoi2013]差异 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 3443 Solved: 1562 [Submit][Stat ...
- BZOJ 2326 数学作业(分段矩阵快速幂)
实际上,对于位数相同的连续段,可以用矩阵快速幂求出最后的ans,那么题目中一共只有18个连续段. 分段矩阵快速幂即可. #include<cstdio> #include<iostr ...
最新文章
- spring@PropertySource用法
- 你知道Integer和int的区别吗
- 【android】读取/res/raw目录下的文件
- windows共享文件服务器迁移(NTFS权限,共享权限,磁盘配额迁移)
- android 好看的输入法,Android 手机上最好的输入法是哪种
- 苹果HTC专利战正酣: 逃离Android?
- 数组元素的填充与替换、排序和复制
- linux运行tomcat常见问题,linux – tomcat运行,但是8080端口没有响应
- 《圆明园的毁灭》教学设计方案
- 技巧积累篇--Dashboard使用技巧
- vfp access mysql具体_详细介绍Visual FoxPro数据表的索引
- 重装系统后计算机无法启动,重装系统后电脑为什么启动不了?云骑士告诉你怎么办?...
- 金山词霸 [2009牛津版] 金山词霸pdf插件
- Cesium 源码解析 Model(一)
- Libevent 学习七:Libevent 两个实例
- Java项目结构及路径
- IT十年人生过客-十一-新挑战
- Cesium:入门教程(三)之视窗配置
- 小学语文哪课适合用计算机,小学语文新课心得体会
- 将“碳中和”融入企业发展,经济学人集团制订“双25”减排计划
热门文章
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
- ECharts+BaiduMap+HT for Web网络拓扑图应用
- ioremap 与 mmap【转】
- rhel6.2 yum
- 企业为什么需要网络流量分析
- 深度学习笔记6:Learning color features with Sparse Autoencoders
- Self-Tuning Spectral Clustering论文阅读和代码理解
- 机器学习模型解释性工具SHAP
- Linux下为文件增加列的shell脚本
- Nutch编译及集成eclipse+mysql开发环境的部署总结