分治
文章平均质量分 74
yrleep
大学毕业不久,ios游戏自由开发者。
展开
-
hdu 4742 Pinball Game 3D 分治+树状数组
离散化x然后用树状数组解决,排序y然后分治解决,z在分治的时候排序解决。 具体:先对y排序,solve(l,r)分成solve(l,mid),solve(mid+1,r), 然后因为是按照y排序,所以l,mid区间内的y值都小于mid+1,r。现在再对z排序,按照顺序以x做关键字插入到树状数组中,那么就可以一起解决l,mid对mid+1,r的影响。 #include #include原创 2013-10-08 21:10:56 · 1191 阅读 · 0 评论 -
poj 3714 Raid 分治
先按横坐标排序,然后分治,合并的时候只需要处理两边x坐标差在d范围内的点即可。把这些点找出来之后,再按照y值排序,然后再检查y坐标差在d以内的点,那么可以保证每个点最多检查6个点(否则这些点之间必定存在距离小于d的点对),那么可以保证o(n)的合并。总的复杂度nlognlogn。 #include #include #include #include #include usi原创 2013-10-07 16:18:54 · 803 阅读 · 0 评论