分治
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
poj3889 Fractal Streets(递归)(分治)
题意给你一个原始的分形图,t组数据,对于每组数据,输入3个数n,h,o(n为在第n级,h,o为两个房子的编号) 。求在第n级情况下,编号为h和o的两个点之间的距离*10为多少。其中,第n级分形图形成规则如下:1、首先先在右下角和右上角复制一遍n-1情况下的分形图;2、然后将n-1情况下的分形图逆时针旋转90度,放到左上角;3、最后将n-1情况下的分形图顺时针旋转90度,放到左下角;4、按照上述规则...原创 2018-07-16 09:47:11 · 1288 阅读 · 0 评论 -
caioj1206 【计算几何】最近点对的距离(分治)
题意给出n个点的坐标,求最近两点间的距离。(一下简称“最小点对的距离”) 题解一种方法是kd-tree,不懂略过。分治+暴力把所有点先按x升序排序。现在要求第l~r个点中的最小点对的距离,我们把其拆成两部分l~mid和mid+1~r,继续分治下去。回来后,再看看跨两部分的两个点点有没有更小的距离。要做到这个,需要插入一个小暴力。以函数x=a[mid].x为中心线,两边在d...原创 2018-08-02 16:48:54 · 462 阅读 · 0 评论 -
poj3714 Raid(分治)
题意给两个点集,求两个点集中任意两点的最小距离。 题解分治+标记如果会了最近点对问题,就可以做了。只要在匹配时注意一下不同集合才能匹配就可以了。我用key做标记:key=1、3表示在集合A,key=2、4在集合B;其中key=1、2表示在a[mid]的左边,key=3、4表示在右边。所以1要和4匹配,2和3匹配。 代码#include<cmath>...原创 2018-08-02 19:01:43 · 423 阅读 · 0 评论