大早上的做了一道三维数点一道五位数点,神清气爽!

先给一维排序,变成一个奇怪的动态的二维数点(相当于有一个扫描面扫过去,导致一系列的加点和询问)

然后cdq分治,再变回静态,考虑前半段对后半段的影响

这时对第二维排序,又变成动态一维数点

树状数组屠之

(不妨再cdq一次变成零维数点,也就是询问一个询问之前有几次修改)(手动滑稽)

另外因为x y z都相同时互相产生影响,特判掉

来上个又臭又长的代码

 #include <bits/stdc++.h>
using namespace std;
struct t
{
int x,y,z,num,ans;
} a[],b[];
int tr[],ans[];
int n,m;
bool comx(t a,t b)
{
return (a.x<b.x)||(a.x==b.x &&(a.y<b.y || (a.y==b.y &&a.z<b.z)));
}
bool same(t a,t b)
{
return (a.x==b.x && a.y==b.y && a.z==b.z);
}
void add(int x,int y)
{
while(x<=m)
tr[x]+=y,x+=x&-x;
}
int que(int x)
{
int ans=;
while(x)
ans+=tr[x],x-=x&-x;
return ans;
}
void cdq(int l,int r)
{
if(l==r)
return;
int mid=l+r>>;
cdq(l,mid);cdq(mid+,r);
for(int i=l,j=l,k=mid+;i<=r;i++)
if(j<=mid &&(k>r || a[j].y<=a[k].y)) b[i]=a[j++];
else b[i]=a[k++];
for(int i=l;i<=r;i++)
{
a[i]=b[i];
if(a[i].num<=mid)
add(a[i].z,);
else
a[i].ans+=que(a[i].z);
}
for(int i=l;i<=r;i++)
if(a[i].num<=mid)
add(a[i].z,-);
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
sort(a+,a+n+,comx);
t tem;int te=;
for(int i=n;i>=;i--)
if(same(tem,a[i])) a[i].ans+=te,++te;
else tem=a[i],te=;
// puts("");
// for(int i=1;i<=n;i++)
// printf("%d %d %d\n",a[i].x,a[i].y,a[i].z);
for(int i=;i<=n;i++)
a[i].num=i;
cdq(,n);
// for(int i=1;i<=n;i++)
// printf("%d %d %d %d\n",a[i].x,a[i].y,a[i].z,a[i].ans);
for(int i=;i<=n;i++)
++ans[a[i].ans];
for(int i=;i<n;i++)
printf("%d\n",ans[i]);
return ;
}

最新文章

  1. ImageUtil(验证码数据生成工具类)
  2. 【HDU 2874】Connections between cities(LCA)
  3. 【OpenJ_POJ C16D】Extracurricular Sports(构造,找规律)
  4. [JS10] 获取时间
  5. [原创]java WEB学习笔记53:Struts2学习之路---前奏:使用 Filter 作为控制器的 MVC
  6. VDN For PB Web实现消息推送
  7. C#中的Collection 2
  8. 关于消除MySQL输入错误后的警报声
  9. Javascript之拖拽库
  10. 使用日志服务LogHub替换Kafka
  11. java_Cookies_1_商品浏览历史记录servlet2
  12. DS_Store
  13. 10.7 noip模拟试题
  14. Count Primes 解答
  15. android怎样自定义设置下拉列表样式
  16. COLORREF和COLOR和RGB的总结
  17. linux面试题集锦4《转》
  18. Number Sequence (HDU 1711)
  19. linux权限字母的含义
  20. pyqt5-QWidget-窗口状态(最大化最小化等)

热门文章

  1. springIOC+Mysql+springmvc事务测试题总结
  2. python生成器简单代码了理解。
  3. Reset CSS 页面初始化css
  4. 《spss统计分析与行业应用案例详解》:实例九 单一样本t检验
  5. 让您的 VS 2012/2013 升级开发 .NET 4.6 -- Targeting the .NET Framework 4.6 (多目标包)
  6. UVA 12171 (hdu 2771)sculptrue(离散化)
  7. Mycat实现读写分离、分库分表
  8. php的字符转换 &amp; php登入注册界面设计以及源码 &amp; 分离公共部分
  9. Linux运维笔记--第一部
  10. iOS开发之WIFI,3G/4G两种网络同时使用技巧