随笔分类 - 算法——模拟退火
摘要:题目 给出 $n$ 个定义在区间 $[0, 1]$ 上的一次函数 $f_i(x) = a_ix+b_i$,定义两个函数的距离为: $$dist(f,g) = \left(\max_{0\leq i\leq T} (f(i)-g(i))\right)^2 + \left(\min_{0\leq i\l
阅读全文
摘要:最小圆覆盖问题 在一个平面上,给出 $N$ 个点,求包围这些点的最小圆,输出圆心及半径。 P1742模板题 分析 虽然可以用模拟退火或者三分套三分, 这里只讲随机增量法, 随机增量法是一种确定性算法,随机意义下均摊复杂度 $O(n)$,而且可以达到很高的精度(可达到 $10^{-10}$ 量级) 有
阅读全文
摘要:题目 给出 $N(1 \leq N \leq 100)$ 个点的坐标 $x_i,y_i,z_i$($-100000 \leq x_i,y_i,z_i \leq 100000$),求包围全部点的最小的球。 2018南京区域赛D题 分析 方法一:模拟退火 模拟退火是 解决最小球覆盖的经典方法,效果也非常
阅读全文
摘要:简介 随机这种东西,貌似在ACM里好像就是用于骗分。 但其实有更多实际的用处(用代替防止快排退化,用构建Treap树保持二叉搜索树的平衡等等),还有就是模拟退火算法,也算是随机化算法中一个极好的例子吧。 模拟退火是一种随机化算法,常用于求函数极值。当一个问题的方案数量极大(甚至是无穷的),我们一般有
阅读全文