题解

三维偏序裸题。。。

一般三维偏序是第一维排序,第二维CDQ分治,第三维树状数组。

模板题还是看代码吧。。。

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=;
const int M=;
int n,d,tr[M],ans[N];
struct query{
int a,b,c;
int w,ans;
bool operator <(const query &x)const{
if(x.a==a){
if(x.b==b)return x.c>c;
else return x.b>b;
}
else return x.a>a;
}
}q[N],c[N];
int lowbit(int x){
return x&-x;
}
void add(int x,int w){
for(int i=x;i<=N-;i+=lowbit(i)){
tr[i]+=w;
}
}
int getsum(int x){
int ans=;
for(int i=x;i>=;i-=lowbit(i)){
ans+=tr[i];
}
return ans;
}
void cdq(int l,int r){
if(l==r)return;
int mid=(l+r)>>;
cdq(l,mid);cdq(mid+,r);
int ll=l;
int rl=mid+;
int now=;
while(ll<=mid&&rl<=r){
if(q[ll].b<=q[rl].b){
add(q[ll].c,q[ll].w);
c[++now]=q[ll++];
}
else{
q[rl].ans+=getsum(q[rl].c);
c[++now]=q[rl++];
}
}
while(ll<=mid){
add(q[ll].c,q[ll].w);
c[++now]=q[ll++];
}
while(rl<=r){
q[rl].ans+=getsum(q[rl].c);
c[++now]=q[rl++];
}
for(int i=l;i<=mid;i++)add(q[i].c,-q[i].w);
for(int i=l;i<=r;i++){
q[i]=c[i-l+];
}
}
int main(){
scanf("%d%d",&n,&d);
for(int i=;i<=n;i++){
scanf("%d%d%d",&q[i].a,&q[i].b,&q[i].c);
q[i].w=;
}
sort(q+,q++n);
// for(int i=1;i<=n;i++){
// cout<<q[i].a<<" "<<q[i].b<<" "<<q[i].c<<endl;
// }
int pd=;
for(int i=;i<=n;i++){
if(q[pd].a==q[i].a&&q[pd].b==q[i].b&&q[pd].c==q[i].c)q[pd].w++;
else q[++pd]=q[i];
}
int num=n;
n=pd;
cdq(,pd);
for(int i=;i<=n;i++)ans[q[i].ans+q[i].w]+=q[i].w;
for(int i=;i<=num;i++)printf("%d\n",ans[i]);
return ;
}

最新文章

  1. gridview安卓实现单行多列横向滚动
  2. 南阳理工ACM954--N!
  3. hdu 2473 Junk-Mail Filter(并查集_虚节点)2008 Asia Regional Hangzhou
  4. windows搭建virtualbox虚拟机安装的android环境
  5. 【LeetCode练习题】Candy
  6. 记录一次因为硬盘写满造成的redis无法连接
  7. Java中的异步通知
  8. 关于 pip安装的可能错误的排除
  9. django-CRM-项目部署
  10. threading模块小结
  11. RedHat 7.0更新升级openSSH7.4p1
  12. 老男孩Python全栈视频
  13. C#高级编程----错误和异常的总结
  14. Vue入门系列(四)之Vue事件处理
  15. http——解读梳理
  16. gtk+学习笔记(五)
  17. Mac OS中Java Servlet与Http通信
  18. FTP自动上传
  19. 数据结构与算法之KMP 字符串匹配
  20. js之方向检测

热门文章

  1. ShellExcuteA
  2. BZOJ 4260 trie树
  3. HD-ACM算法专攻系列(9)——大菲波数
  4. excel文件使用html导出
  5. RGB与16进制色互转
  6. PIC18F26K20
  7. git clone 和 git pull 代码无响应
  8. IIFE 萌新学习笔记
  9. CodeForces-920E Connected Components? 广度搜索 双向链表 判断联通 大量重复节点的删除
  10. vue中的methods、computed和watch