求高手验证此方法的正确性
  • 板块学术版
  • 楼主int233
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/7/1 09:26
  • 上次更新2025/7/1 19:52:23
查看原帖
求高手验证此方法的正确性
333855
int233楼主2025/7/1 09:26

题目:link

首先距离的平方 =xi2+yi2+zj22yizjRj2=x_i^2+y_i^2+z_j^2-2y_iz_j\le R_j^2

执行以下操作:

RjRj2zj2R_j\gets R_j^2-z_j^2

xixi2+yi2x_i\gets x_i^2+y_i^2

yi2yiy_i\gets 2y_i

则问题变为对于一个特定的 ii 求有多少个 jj 满足 xjziyjRix_j-z_iy_j\le R_i ,考虑随着 ziz_i 的增大动态排序 xjziyjx_j-z_iy_j

直接解出 xityixjtyjx_i-ty_i\le x_j-ty_j 对于 tt 的范围,约定 yiyjy_i\ge y_j ,事先按照 yy 为第一关键字, xx 为第二关键字排序。

离散化 zz ,对于每个斜率值解出第一个 \ge 它的 zz 值和位置,可以把整个长为 2×1092\times 10^9 的序列进行分块,块内无 zz 则预处理,否则二分查找,复杂度是对的。

2025/7/1 09:26
加载中...