分治本身的大部分内容还是比较好想的,就是中线划分的左右区间可能出现跨线最小值的操作,所以说我们需要枚举另一个点集.也就是距离中线的距离小于d的点,因为这些才是有可能在更新答案的点集,然后我们再把他们按照y排序枚举看一下如果y差值都大于d那么就不枚举这是一个剪枝,剩下的就是更新答案,然后就ok了 O(NlogN)
1 |
|
分治本身的大部分内容还是比较好想的,就是中线划分的左右区间可能出现跨线最小值的操作,所以说我们需要枚举另一个点集.也就是距离中线的距离小于d的点,因为这些才是有可能在更新答案的点集,然后我们再把他们按照y排序枚举看一下如果y差值都大于d那么就不枚举这是一个剪枝,剩下的就是更新答案,然后就ok了 O(NlogN)
1 | #include <bits/stdc++.h> |
微信支付
支付宝
Baccano by baccano is licensed under a Creative Commons BY-NC-ND 4.0 International License.
由baccano创作并维护的Baccano博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于baccano 博客( http://baccano.fun ),版权所有,侵权必究。
可以使用鼠标点击琴键也可以使用主键盘1-7或者小键盘的1-7来操作