跳跃表是随机化的数据,以有序的方式在层次化链表中保存数据,效率和平衡树媲美,直观好懂。 ...
分类:
其他好文 时间:
2021-03-29 12:07:39
阅读次数:
0
设标'a'的点为红色点,标'b'的点为蓝色点。 设$d$为所有点中到点$1$的距离种类数,则答案只可能是$d$或者$d+1$。 如果答案为$d$等价于可以使得同深度的点颜色相同,可以用随机化解决。 具体来说:维护一个集合,如果集合中所有数的和小于$x$就随机加入一个数,否则随机删除一个数。 这么随机 ...
分类:
其他好文 时间:
2021-02-06 12:15:22
阅读次数:
0
题意: 多组输入,给定a,b两个数组,长度分别为n,m。每个元素有两个值:wi,vi,要求从两个数组中分别选出一个子数组,使得两个子数组的wi和相同,并使总的vi之和最大。 数据范围:n,m<=1e3,wi<=1e3,vi<=1e9,\(\sum(n+m)<=1e4\) 解法: 很容易想到分别对两个 ...
分类:
其他好文 时间:
2020-07-31 18:01:31
阅读次数:
115
215. 数组中的第K个最大元素 Difficulty: 中等 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3, ...
分类:
编程语言 时间:
2020-07-01 22:33:12
阅读次数:
72
LINK:平面最近点对 加强版 有一种分治的做法 因为按照x排序分治再按y排序 可以证明每次一个只会和周边的六个点进行更新。 好像不算很难 这里给出一种随机化的做法。 前置知识是旋转坐标系 即以某个点位旋转中心旋转某个点的位置。 设旋转中心为(x2,y2). 旋转公式:x=(x1-x2)cos(a) ...
分类:
其他好文 时间:
2020-07-01 15:45:54
阅读次数:
74
题目描述 给定平面直角坐标系上的 \(n\) 个点,分别求出距离最近的两个点的距离和距离最远的两个点的距离。注意,距离为直线距离。 输入格式 第一行一个整数,\(n\)。 接下来 \(n\) 行每行两个非负浮点数,$x_i$?,\(y_i\),表示第 \(i\) 个点的 X 坐标与 Y 坐标。 输出 ...
分类:
其他好文 时间:
2020-05-26 20:37:14
阅读次数:
51
给一个数列,每次询问一个区间内有没有一个数出现次数超过一半 #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int ...
分类:
其他好文 时间:
2020-05-26 15:06:14
阅读次数:
52
一、随机化避免碰撞 1.对数字进行随机化后可以避免数字发生碰撞。 例题:P2087 GTY的人类基因组计划2 这道题的唯一难点是判断一个房间里的一群人是否出现过。 可以考虑对于每一个人赋予他一个rand值,然后用rand值的和判断是否出现过。 比如有编号1,2,3的三个人,假设他们的rand值为11 ...
分类:
其他好文 时间:
2020-05-24 09:47:49
阅读次数:
59
树堆(Treap)详解 本篇随笔详细讲解一下一种随机化数据结构——树堆($Treap$)。 树堆的概念 首先给一个字符串等式: $$ Treap=Tree+heap $$ 所以$Treap$树堆其实就是树+堆。树是二叉查找树$BST$,堆是二叉堆,大根堆小根堆都可以。 关于$BST$的相关知识,请看 ...
分类:
其他好文 时间:
2020-05-13 20:28:48
阅读次数:
77
为了防止二叉搜索树中性能大大降低的最坏情况出现,我们可以采用一些方法,如:随机化、分期化和最优化来使其达到平衡。 下面函数使用分区函数在线性时间内使一棵二叉搜索树达到完美平衡状态。我们先划分以便把中值节点放入树根,然后(递归地)对子树执行同样的操作。 1 void balanceR(link& h) ...
分类:
其他好文 时间:
2020-05-13 09:32:37
阅读次数:
45