[ 随机增量法 ] BZOJ1336 && 1337 && 2823
先将所有点随机排列,然后枚举每个点,如果超出圆的范围就再枚举另外两个点求出圆心。 这样看上去是 O(n3)O(n^3) 的,实际上可以证明期望为 O(n)O(n) 。 求圆心可以假设出圆的方程然后解三元一次方程组。注意判断共线的情况。#include<bits/stdc++.h>using namespace std;typedef double db;const int N=100001
原创
2017-12-18 13:11:36 ·
346 阅读 ·
0 评论