DTOJ 4841. 岩雀

4 篇文章 0 订阅
3 篇文章 0 订阅

题意

命数为织,当为磐石!

—塔莉垭,“岩雀”

命运的纹路交织错落。我却磐石那般坚定不移。

岩雀的一次 Q Q Q·石穿 可以被理解在平面上画一个圆,圆的解析式是 ( x − x i ) 2 + ( y − y i ) 2 = r i 2 (x-x_i)^2+(y-y_i)^2=r_i^2 (xxi)2+(yyi)2=ri2。其中 ∣ x i ∣ , ∣ y i ∣ ≤ 1 0 9 , 0 < r i ≤ 1 0 9 |x_i|,|y_i| \le 10^9,0<r_i \le 10^9 xi,yi109,0<ri109

然而,一次合法的Q·石穿要求不能和任何一个别的Q·石穿相交(有两个交点),内切,内含。

美团、高哥很牛进行了 2 ≤ n ≤ 5 × 1 0 5 2 \le n \le 5 \times 10^5 2n5×105合法的 Q·石穿。我们说,一个下饭是一个无序二元组,里面是两个标号不同的Q·石穿,使得这两个圆外切。如果你不知道外切是什么意思,你可以咨询你的初中数学老师。

我的问题是,他总共打了多少个不同的下饭操作?

子任务特征分值 n ≤ n \le n
105000
保证答案 ≤ n \le n n1080000
坐标范围 − 1000 ≤ x i , y i ≤ 1000 -1000 \le x_i,y_i \le 1000 1000xi,yi100015100000
只存在两种圆, ( 10 a , 6 b ) , r i = 3 (10a,6b),r_i=3 (10a,6b),ri=3 ( 10 a + 4 , 6 b + 3 ) , r i = 2 (10a+4,6b+3),r_i=2 (10a+4,6b+3),ri=225500000
40500000

题解

由于保证圆之间没有交,如果把相切的两个圆连边,那么形成一个平面图,故相切的圆数不会很多,是 O ( n ) O(n) O(n)级别的。

于是考虑一个个找出相切的圆,但 x x x y y y坐标难以同时考虑;又注意到如果两个圆相切,那么在切点处垂直 x x x轴的直线上 l l l,两个圆截得的圆弧端点相邻,即所有与这条直线相交的圆心中,这两个圆圆心的 y y y坐标相邻。

于是把这条直线 l l l从左到右扫一遍,加入或删除圆心,同时查看相邻的两个圆是否相切(这样相当于把所有情况的 l l l枚举一边)。但这样可能两个相切的圆在加入和删除时同时被算到,用 m a p map map去重即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值