
随机化
文章平均质量分 78
commonc
这个作者很懒,什么都没留下…
展开
-
UOJ#192. 【UR #14】最强跳蚤
题目大意:给定一颗树,每条边有一个权值,求有多少有序点对使得这两点间路径权值乘起来是完全平方数我们可以给每个素数随机一个权值,然后把每条边的权值分解质因数,把每个素数换成对应的权值然后异或起来,这样权值乘起来是完全平方数就变成了路径异或和等于0然后路径异或和等于0等价于到根的路径异或和相等,这样就可以直接求出来了...为了保证准确率,最好在longlong范围内随机权值原创 2016-07-06 08:37:01 · 805 阅读 · 0 评论 -
BZOJ2280: [Poi2011]Plot
题目大意:给定n个点和m,要求把n个点分成m段,使得每段的最小覆盖圆的半径的最大值最小肯定能想到要二分答案,然后看看怎么判定对于每个点来说,需要找到序列中最远能到达的从他开始符合条件的点但是因为最小圆覆盖需要随机打乱点才能保证时间复杂度,所以我们不能依次推出最小覆盖圆,那么能想到二分但是每次检验是O(长度)的,而我们需要二分m次,直接二分可能会使时间复杂度变成O(logIN原创 2016-08-23 16:09:52 · 800 阅读 · 0 评论 -
BZOJ1336&1337:[Balkan2002]Alien最小圆覆盖
题目大意:给定n个点,求最小圆覆盖最小圆覆盖裸题....算法讲解戳→这里#include#include#include#include#include#define N 100010using namespace std;struct node{double x,y;}b[N];node O;double R;double sqr(double x){原创 2016-08-23 16:07:29 · 462 阅读 · 0 评论 -
最小圆覆盖算法
算法目的:最小圆覆盖算法可以在线性时间复杂度内求出覆盖n个点的最小圆算法步骤: ①首先现将所有点随机排列 ②按顺序把点一个一个的加入(一步一步的求前i个点的最小覆盖圆),每加入一个点就进入③ ③如果发现当前i号点在当前的最小圆的外面,那么说明点i一定在前i个点的最小覆盖圆边界上,我们转到④来进一步确定这个圆,否则前i个点的最小覆盖圆与前i-1个点的最小覆盖圆是一样的,则不原创 2016-08-23 16:05:39 · 18078 阅读 · 6 评论