博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P3810 【模板】三维偏序(陌上花开)
阅读量:5357 次
发布时间:2019-06-15

本文共 907 字,大约阅读时间需要 3 分钟。

题目描述

有 nn 个元素,第 ii 个元素有 a_iaib_ibic_ici 三个属性,设 f(i)f(i) 表示满足 a_j \leq a_iajai 且 b_j \leq b_ibjbi 且 c_j \leq c_icjci的 jj 的数量。

对于 d \in [0, n)d[0,n),求 f(i) = df(i)=d 的数量

输入输出格式

输入格式:

 

第一行两个整数 nn、kk,分别表示元素数量和最大属性值。

之后 nn 行,每行三个整数 a_iaib_ibic_ici,分别表示三个属性值。

 

输出格式:

 

输出 nn 行,第 d + 1d+1 行表示 f(i) = df(i)=d 的 ii 的数量。

 

输入输出样例

输入样例#1: 
10 33 3 32 3 32 3 13 1 13 1 21 3 11 1 21 2 21 3 21 2 1
输出样例#1: 
3130101001

说明

1 \leq n \leq 100000, 1 \leq k \leq 2000001n100000,1k200000




 

 

就是一维排序,一维cdq,一维数据结构,

然后就是要把萨格属性完全相同的要去掉,并在这个属性的个数上+1. 其他的就没什么了

其实一开始看到cdq是一脸懵逼的,怎么看也看不懂,但是理解了以后就会发现这玩意也挺简单的。



 

1 #include 
2 #include
3 #include
4 5 struct point{ 6 int a,b,c,id; 7 point(){ 8 a=b=c=id=0; 9 }10 }num[100001],tem[100001];11 bool cmp(point lhs,point rhs){12 if(lhs.a!=rhs.a)return lhs.a

 

转载于:https://www.cnblogs.com/zhangbuang/p/10425895.html

你可能感兴趣的文章
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I & II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
response和request
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
回到顶部浮窗设计
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
$ 一步一步学Matlab(3)——Matlab中的数据类型
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
描绘应用程序级的信息
查看>>
poj2406-Power Strings
查看>>
php环境搭建脚本
查看>>
FTP主动模式与被动模式说明
查看>>
php 编译常见错误
查看>>
MES架构
查看>>