Processing math: 5%

洛谷P4631/uoj415/loj2586 [APIO2018] Circle selection 选圆圈

考虑和一个圆有交集的圆,是平面上的一块区域,所以我们考虑用 KDtree 维护。

两个圆相交的条件 \displaystyle (X_i-X_j)^2+(Y_i-Y_j)^2 \leqslant (R_i+R_j)^2

考虑怎么剪枝,直接维护 X,Y,R 的话不好维护。我们知道圆 i 和圆 j 有交集的话肯定会和框住圆 j 的最小的正方形有交集。

所以我们维护 KDtree 一个子树里所有圆对应的正方形 X,Y 的最值来剪枝即可。

yuan 里的 l,r :对应的正方形的左下角和右上角的坐标。

shu 里的 l,r :子树里正方形 x,y 坐标的最小值和最大值。

然而 uojloj 上有 hack 数据,我们只要充分发挥人类智慧旋转一下坐标系就行了。记得开 long \space double.代码在这

posted @   wljss  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战
点击右上角即可分享
微信分享提示