链接

https://www.lydsy.com/JudgeOnline/problem.php?id=3262

思路

CDQ版本稍后再说
二维偏序排序用树状数组求就可以
而三维之后就不可以了,但我们可以在BIT上维护一个功能强大的treap
维护多出来的一维c

BIT套treap
a排序
BIT维护b
treap维护c

错误

需要注意的是,重复元素就不能挨个求了,他们的贡献是最后一个的贡献*数量,注意思考

代码

#include <iostream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <cstdio>
using namespace std;
const int N=2e5+7;
int read() {int x=0,f=1;char s=getchar();for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1;for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';return x*f;
}
#define AA first
#define BB second.first
#define CC second.second
pair<int,pair<int,int> > x[N];
int n,m;
namespace treap {int ch[N*40][2],val[N*40],pri[N*40],siz[N*40],cnt;int make_new(int k) {val[++cnt]=k,pri[cnt]=rand(),siz[cnt]=1;return cnt;}void pushup(int rt) {siz[rt]=siz[ch[rt][0]]+siz[ch[rt][1]]+1;}int merge(int x,int y) {if(!x||!y) return x+y;if(pri[x]<pri[y]) {ch[x][1]=merge(ch[x][1],y);pushup(x);return x;} else {ch[y][0]=merge(x,ch[y][0]);pushup(y);return y;}}void split(int now,int &x,int &y,int k) {if(!now) x=y=0; else {if(val[now]<=k)x=now,split(ch[now][1],ch[x][1],y,k);else y=now,split(ch[now][0],x,ch[y][0],k);pushup(now);}}int k_th(int now,int k) {while(233) {if(siz[ch[now][0]]+1==k) return now;if(siz[ch[now][0]]>=k) now=ch[now][0];else k-=siz[ch[now][0]]+1,now=ch[now][1];}}void insert(int &now,int w) {int x,y;split(now,x,y,w);now=merge(merge(x,make_new(w)),y);}int query(int now,int k) {int x,y;split(now,x,y,k);int ans=siz[x];now=merge(x,y);return ans;}
}
namespace BIT {int rt[N];void add(int b,int c) {for(int i=b;i<=m;i+=(i&-i))treap::insert(rt[i],c);}int query(int b,int c) {int ans=0;for(int i=b;i>=1;i-=(i&-i))ans+=treap::query(rt[i],c);return ans;}
}
int ans[N];
int main() {n=read(),m=read();for(int i=1;i<=n;++i) x[i].AA=read(),x[i].BB=read(),x[i].CC=read();sort(x+1,x+1+n);int js=1;for(int i=1;i<=n;++i) {if(x[i]==x[i+1]) js++;else ans[BIT::query(x[i].BB,x[i].CC)]+=js,js=1;     BIT::add(x[i].BB,x[i].CC);  }for(int i=0;i<n;++i) printf("%d\n",ans[i]);return 0;
}

转载于:https://www.cnblogs.com/dsrdsr/p/10359538.html

bzoj3262: 陌上花开 树套树相关推荐

  1. Uva 3767 Dynamic len(set(a[L:R])) 树套树

    Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...

  2. BZOJ 3262 cdq分治 OR 树套树

    注意判断 三个条件都一样的-- (CDQ分治 其实并不是很难理解 只是想不到--) CDQ分治: //By SiriusRen #include <cstdio> #include < ...

  3. 【Luogu】P3380树套树模板(线段树套Splay)

    题目链接 幸甚至哉,歌以咏志. 拿下了曾经是那么遥不可及的线段树,学会了曾经高不可攀的平衡树,弄懂了装B的时候才挂在嘴边的树套树. 每道模板都是链上的一颗珠子.把它们挨个串起来,就成为我成长的历程. ...

  4. #4604. The kth maximum number(整体二分 + 树套树)

    #4604. The kth maximum number 给定一个大小不超过5×1055 \times 10 ^ 55×105的矩形区域,有一些点有点权. 每次询问给定x1,y1,x2,y2,kx_ ...

  5. [树套树] 网络管理

    A:[CTSC2008]网络管理 此题本来是平衡树板块的,但俺写的是树套树,平衡树会多个log 题目 查询第kkk大,天然主席树可以维护 就不用了平衡树二分,多个logloglog了 将树上(u,v) ...

  6. jzoj5699-[GDOI2018day1]涛涛接苹果【树套树】

    正题 题目链接:https://gmoj.net/senior/#main/show/5699 题目大意 一棵树,每个节点有权值,每天所有权值会往它的父节点滑一位,然后有操作会在某一天的某个节点加权值 ...

  7. P2617-Dynamic Rankings【树套树】

    正题 题目链接:https://www.luogu.com.cn/problem/P2617 题目大意 给出一个序列,要求支持 区间查询第kkk大 单点修改 解题思路 区间查询第kkk大需要使用主席树 ...

  8. P3332-[ZJOI2013]K大数查询【树套树】

    正题 题目链接:https://www.luogu.com.cn/problem/P3332 题目大意 开始nnn个可以重复的集合,要求支持操作 1lrc:1\ l\ r\ c:1 l r c:将cc ...

  9. [luogu3380][bzoj3196]【模板】二逼平衡树【树套树】

    题目地址 [洛谷传送门] 题目大意 区间查询k的排名,查找k排名的数,单点修改,区间前驱,区间后继. 感想 真的第一次写树套树,整个人都不对了.重构代码2次,发现样例都过不了,splay直接爆炸,可能 ...

  10. BZOJ3489 A simple rmq problem 【可持久化树套树】*

    BZOJ3489 A simple rmq problem Description 因为是OJ上的题,就简单点好了.给出一个长度为n的序列,给出M个询问:在[l,r]之间找到一个在这个区间里只出现过一 ...

最新文章

  1. 《DDIA》读书笔记
  2. 基因测序、生物信息分析平台工作站硬件配置推荐2020
  3. 一些C++的开源项目和C++库以及修炼C++的方法
  4. 从 Vuex 0.6.x 迁移到 1.0
  5. 深度学习每层的通道数如何计算_模型通道剪枝之DMCP: Differentiable Markov Channel Pruning...
  6. 【NLP】使用Python可视化Word2vec的结果
  7. 辽宁地质工程职业学院计算机应用技术,辽宁地质工程职业学院10大好就业专业推荐...
  8. mysql 5.7.11 压缩包安装办法遇到故障后彻底卸载办法
  9. 【每日算法Day 98】慈善赌神godweiyang教你算骰子点数概率!
  10. ASP.NET Core--授权过滤器
  11. intellij常用快捷键
  12. [编程与人生的韵味]注重实效的哲学
  13. memset()的用法
  14. 20180329整理巡检系统代码
  15. 部分贴片电阻标准阻值表(印字阻值对照)
  16. 【机器学习】特征工程的最佳实践
  17. MySQL 查询学生的总成绩并进行排名_MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况)...
  18. 打开软件时出现“请将磁盘插入可移动磁盘“G:””
  19. 大数据标准化白皮书(2020版) 附下载地址
  20. 2021-2-11——除夕

热门文章

  1. php new mpdf,php – PDF不合并大于使用mPDF的PDF-1.5版本
  2. C# Json文件读取
  3. UGUI的Slider
  4. html双击单元格修改,JS实现鼠标双击选中表格单元格代码
  5. 2021-01-11
  6. 动态开辟内存_C/C++工程师你理解程序的内存分区吗?
  7. [渝粤教育] 广东-国家-开放大学 21秋期末考试市场调查与预测10243k2
  8. 【渝粤教育】国家开放大学2018年秋季 0556-22T广告摄影 参考试题
  9. 【实物】端到端自动驾驶搭建教程(三)附完整资料
  10. 二维数组作为函数的实参,定义函数形参的方法