BZOJ 2829 信用卡凸包 凸包

2021-09-11 02:59:55 字數 1305 閱讀 3177

傳送門:bzoj2829

太zz了,這麼水的題都沒想出來。。。

如果是矩形,凸包上的點一定都是矩形的頂點,gra

ha

mgraham

graham

求出凸包後將每個頂點的尖角轉成圓弧,貢獻不好算。。。

於是將矩形的頂點轉成四個1

4\frac 14

41​圓的圓心,求出凸包周長後+乙個圓的周長即可。

直接貼黃學長的了=_=

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define rad 100000000

#define inf 1000000000

#define ll long long

#define eps 1e-8

#define pa pair

#define pi acos(-1)

using

namespace std;

double ans;

int n,cnt,top;

double a,b,r;

double

sqr(

double x)

struct p

friend p operator

-(p a,p b)

friend

double

operator

*(p a,p b)

friend

bool

operator

<

(p a,p b)

friend

double

dis2

(p a)

}p[400005

],q[

400005];

struct reco[

100005];

void

print

(p a)

p move

(p a,

double d,

double a)

bool

cmp(p a,p b)

void

graham()

}void

build()

}void

solve()

intmain()

bzoj2829 信用卡凸包 凸包

26.0 2.0 0.0 0.0 0.0 0.0 2.0 2.0 1.5707963268 21.66 本樣例中的2張信用卡的輪廓在上圖中用實線標出,如果視1.5707963268為 pi 2 pi為圓周率 則其凸包的周長為16 4 sqrt 2 題解 把邊上的圓去掉然後求一遍凸包,最後再加上乙個圓...

bzoj 2829 信用卡凸包 (凸包)

time limit 10 sec memory limit 128 mbsec special judge submit 327 solved 151 submit status discuss 26.0 2.0 0.0 0.0 0.0 0.0 2.0 2.0 1.5707963268 21.66...

BZOJ2829 信用卡凸包

標籤 凸包 題目傳送門 description input output sample input 26.0 2.0 0.0 0.0 0.0 0.0 2.0 2.0 1.5707963268 sample output 21.66 hint 本樣例中的2張信用卡的輪廓在上圖中用實線標出,如果視1.5...