codeforces 762E(cdq分治)
题意:
n个电台,每个电台有三个属性xi, ri, fi。分别代表电台的坐标,电台的播报范围,以及播报的频率。
对于一对电台i, j,若min(ri, rj) >= |xi - xj|,那么他们彼此可达。
对于一对电台i, j,他们彼此可达,且当i < j, 若|fi - fj| <= k, 则这一对为关系为bad。
现在给出n个电台的信息,以及k的大小,问bad对的数目。
不存在不同的电台占据同一个位置的数据。
1 <= n <= 1e5, 0 <= k <= 10,1 <= xi,ri <= 1e9, 1 <= fi <= 1e4。
分析:
我们按照r从大到小排序,那么限制条件就变成了对于一个i,找它前面出现的点j的个数,满足xi-ri<=xj<=xi+ri且fi-k<=fj<=fi+k
也就是求平面上矩形区域内点的个数,这明显就是个cdq分治处理三维偏序
这里求矩形区域内的个数就是相当于四个矩形加加减减
对于每个点拆成5个点,分别是一个插入点(flag=0),四个询问点(flag=1或-1)
cdq分治时候,只有flag=0的点才能更新树状数组,只有flag=1或-1的点才能从树状数组中get到答案
还有一点要注意,要注意多关键字排序时候的顺序
对于一组点的5个分点,flag=0的点一定要放到最后面,因为如果放前面,可能这个点对自身的询问造成贡献
时间复杂度O(nlog^2n)
codeforces 762E(cdq分治)的更多相关文章
- 【题解】Radio stations Codeforces 762E CDQ分治
虽然说好像这题有其他做法,但是在问题转化之后,使用CDQ分治是显而易见的 并且如果CDQ打的熟练的话,码量也不算大,打的也很快,思维难度也很小 没学过CDQ分治的话,可以去看看我的另一篇博客,是CDQ ...
- Radio stations CodeForces - 762E (cdq分治)
大意: 给定$n$个三元组$(x,r,f)$, 求所有对$(i,j)$, 满足$i<j, |f_i-f_j|\le k, min(r_i,r_j)\ge |x_i-x_j|$ 按$r$降序排, ...
- Codeforces 669E cdq分治
题意:你需要维护一个multiset,支持以下操作: 1:在某个时间点向multiset插入一个数. 2:在某个时间点在multiset中删除一个数. 3:在某个时间点查询multiset的某个数的个 ...
- Tufurama CodeForces - 961E (cdq分治)
题面 One day Polycarp decided to rewatch his absolute favourite episode of well-known TV series " ...
- AI robots CodeForces - 1045G (cdq分治)
大意: n个机器人, 位置$x_i$, 可以看到$[x_i-r_i,x_i+r_i]$, 智商$q_i$, 求智商差不超过$k$且能互相看到的机器人对数. 这个题挺好的, 关键是要求互相看到这个条件, ...
- CodeForces - 762E:Radio stations (CDQ分治||排序二分)
In the lattice points of the coordinate line there are n radio stations, the i-th of which is descri ...
- Codeforces 1093E Intersection of Permutations [CDQ分治]
洛谷 Codeforces 思路 一开始想到莫队+bitset,发现要T. 再想到分块+bitset,脑子一抽竟然直接开始写了,当然也T了. 最后发现这就是个裸的CDQ分治-- 发现\(a\)不变,可 ...
- Codeforces 1045G AI robots [CDQ分治]
洛谷 Codeforces 简单的CDQ分治题. 由于对话要求互相看见,无法简单地用树套树切掉,考虑CDQ分治. 按视野从大到小排序,这样只要右边能看见左边就可以保证互相看见. 发现\(K\)固定,那 ...
- Codeforces 848C Goodbye Souvenir [CDQ分治,二维数点]
洛谷 Codeforces 这题我写了四种做法-- 思路 不管做法怎样,思路都是一样的. 好吧,其实不一样,有细微的差别. 第一种 考虑位置\(x\)对区间\([l,r]\)有\(\pm x\)的贡献 ...
随机推荐
- Activiti工作流和shiro权限管理关系图
- R in action读书笔记(21)第十六章 高级图形进阶(上)
16.1 R 中的四种图形系统 基础图形函数可自动调用,而grid和lattice函数的调用必须要加载相应的包(如library(lattice)).要调用ggplot2函数需下载并安装该包(inst ...
- HTML标签的分类
html中的标签元素大体被分为三种不同的类型:块状元素.内联元素和内联块状元素.常用的块状元素有:<div>.<p>.<h1>...<h6>.<o ...
- Leetcode_638.Shopping Offers
https://leetcode.com/problems/shopping-offers/ In LeetCode Store, there are some kinds of items to s ...
- Python3.0 调用HTMLTestRunner生成的报告中不能显示用例中print函数的输出
官方原生的HTMLTestRunner.py支持python2.0版本,python3.0版本的使用需要做一些修改: Python3调用HTMLTestRunner执行用例生成测试报告中,不能正常显示 ...
- docker 容器挂载主机目录,访问出现 cannot open directory /mnt/home/webroot/: Permission denied 的解决办法
问题原因及解决办法 原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题: 1.在运行容器的时候,给容器加特权,及加上 --privileged= ...
- splice用法解析
splice()方法算是最强大的数组方法了,它有很多种用法,主要用于删除指定位置的数组项,在指定的位置插入数组项,在指定位置替换数组项,slpice()方法始终都会返回一个数组,该数组包括从原始数组中 ...
- WNDCLASS和WNDCLASSEX
typedef struct { UINT cbSize; UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINST ...
- CAD使用GetxDataLong读数据(com接口)
主要用到函数说明: MxDrawEntity::GetxDataLong2 读取一个Long扩展数据,详细说明如下: 参数 说明 [in] LONG lItem 该值所在位置 [out, retval ...
- 03HibernateJAVA类与数据库表映射配置
HibernateJAVA类与数据库表映射配置