https://www.luogu.org/problemnew/show/P3810

复习板子,重要的题就真的要写三遍???之前写过一篇博客了,不过之前写的那个板子的sort用的规则真是沙雕

#include<bits/stdc++.h>
using namespace std;
const int maxn=100010;
int n,k,tot=0;
struct flos{
int x,y,z;
int ans,cnt;
}f[maxn];
int num[maxn]={},t[maxn*2]={};
inline bool mcmp1(flos a,flos b){
if(a.x==b.x){
if(a.y==b.y)return a.z<b.z;
return a.y<b.y;
}
return a.x<b.x;
}
inline bool mcmp2(flos a,flos b){
if(a.y==b.y){
if(a.z==b.z)return a.x<b.x;
return a.z<b.z;
}
return a.y<b.y;
}
void addt(int x,int v){
while(x<=k){
t[x]+=v;
x+=(x&-x);
}
}
int gett(int x){
int tsn=0;
while(x){
tsn+=t[x];
x-=(x&-x);
}return tsn;
}
void mcdq(int l,int r){
if(l==r){ f[l].ans+=f[l].cnt-1; return; }
int mid=(l+r)/2;
mcdq(l,mid); mcdq(mid+1,r);
sort(f+l,f+mid+1,mcmp2);
sort(f+mid+1,f+r+1,mcmp2);
int j=l;
for(int i=mid+1;i<=r;++i){
while(f[j].y<=f[i].y&&j<=mid){addt(f[j].z,f[j].cnt);++j;}
f[i].ans+=gett(f[i].z);
}
for(int i=l;i<j;++i)addt(f[i].z,-f[i].cnt);
}
int main(){
scanf("%d%d",&n,&k);
for(int i=1; i<=n; ++i)scanf("%d%d%d",&f[i].x,&f[i].y,&f[i].z);
sort(f+1,f+1+n,mcmp1);
//for(int i=1;i<=n;++i)cout<<f[i].x<<f[i].y<<f[i].z<<endl;
for(int i=1; i<=n; ++i){
if(i!=1 && f[i].x==f[i-1].x && f[i].y==f[i-1].y && f[i].z==f[i-1].z)++f[tot].cnt;
else{ f[++tot]=f[i]; f[tot].cnt=1;}
}
mcdq(1,tot);
for(int i=1;i<=tot;++i)num[f[i].ans]+=f[i].cnt;
for(int i=0;i<n;++i)printf("%d\n",num[i]);
return 0;
}

  

最新文章

  1. 为什么很多SaaS企业级产品都熬不过第一年
  2. JAVA_Android APK反编译就这么简单 详解(附图)
  3. iOS 获取emoji表情和拦截emoji表情
  4. Unity3D DllNotFoundException/System.DllNotFoundException
  5. 第十四课:js操作节点的插入,复制,移除
  6. uri编解码
  7. SE 2014年5月27日
  8. Rich IntelliSense for jQuery
  9. WP8.1开发中对于XAML中一些语言的学习(1);
  10. On-Heap与Off-Heap
  11. string转换为guid类型 split
  12. 普通程序员如何转向AI方向(转)
  13. 你不知道的JS之作用域和闭包 附录
  14. c c++ 函数不要返回局部变量的指针
  15. 20135327郭皓——Linux内核分析第二周 操作系统是如何工作的
  16. SQL语句的执行过程
  17. 2018-2019 20165226 网络对抗 Exp1 PC平台逆向破解
  18. statsmodels中的summary解读(以linear regression模型为例)
  19. 2018-2019-2 20165219《网络对抗技术》Exp2 后门原理与实践
  20. golang笔记1

热门文章

  1. 我的Vue朝圣之路1
  2. Gym102028G Shortest Paths on Random Forests 生成函数、多项式Exp
  3. REDISTEMPLATE如何注入到VALUEOPERATIONS
  4. 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀)
  5. C#中Unity对象的注册方式与生命周期解析
  6. StatusStrip控件的使用(转:http://blog.sina.com.cn/s/blog_4f18c3ec0100fguf.html)
  7. String字符串常用方法
  8. java第三次面试总结
  9. docker第一章--介绍和安装
  10. jquery实现输入框实时统计字数和设置字数限制功能