HDU3995 最小包圍圓變形

2021-05-27 22:13:17 字數 1212 閱讀 9727

這題出2了,下次注意點。

時間卡緊了導致一些不太好的最小包圍圓模板過不了。

精度上要求有點高,可能導致了一些wa。

有的隊方法完全正確,由於出題的經驗不足,可惜了。

直接把標程貼出來吧。

題意:兩個點集的最小包圍圓,  隨機增量的時候,改一下模板就行了。

/*

*最小包圍圓隨機增量o(n)變形

* by tju_accry

**real 0m0.957s

*user 0m0.944s

*sys 0m0.012s

*/#include #include #include #include using namespace std;

#define sqr(a) ((a)*(a))

#define trarea(p) fabs ((vdet(p[0],p[1],p[2])/2.0))

double const eps = 1e-12;

int const maxn = 20011;

struct point;

struct circle;

inline double vdet(point op,point p1,point p2)

inline double dis(point a,point b)

inline point get_out_circle(point p)

inline double get_out_r(point p)

point must_on[3],p[maxn];

circle mc;

inline void get_circle(int tm)break;

case 3:break;

}}inline void min_circle(int t,int ton)

*//*本題*/

if(p[i].flag == 1)

}else }}}

int main()

for(int i = n; i < m + n; ++i)

n = n + m;

random_shuffle(p,p+n); //隨機化序列元素

min_circle(n,0);

printf("%.3lf %.3lf\n%.3lf\n",mc.c.x,mc.c.y,sqrt(mc.r));

} return 0;

}

最小包圍矩形

題目內容 給定一組二維座標,表示直角座標系內的乙個多邊形的連續的頂點的座標序列。計算能包圍這個多邊形的平行於座標軸的最小矩形,輸出它的左下角和右上角的座標。輸入格式 第一行是乙個正整數n表示頂點的數量,第二行是n組整數,依次表示每個頂點座標的x和y值。輸出格式 四個整數,依次表示所計算的矩形的左下角...

最小包圍凸包

最近看了最小凸包繪製,官方 沒看,常見的有graham s scan演算法 其實原理比較簡單,先將點集排序,之後根據左轉進行棧掃瞄。1.點集排序 一般取x座標最小的,並且盡量y大的,靠左下角的點作為起始點。然後連線起始點p0與其他點,計算連線與豎直向下方向的夾角,按照大小順序排列。s p1,p2,p...

matlab練習程式(最小包圍矩形)

又是計算幾何,我感覺最近對計算幾何上癮了。當然,工作上也會用一些,不過工作上一般直接呼叫boost的geometry庫。上次寫過最小包圍圓,這次是最小包圍矩形,要比最小包圍圓複雜些。最小包圍矩形可不一定是個直立的矩形,也可能像下圖一樣是傾斜的。求法如下 1.求多邊形凸包,這裡凸包直接呼叫系統函式了,...