poj1474 半平面交判斷是否解包括點線解

2021-09-11 01:17:40 字數 1655 閱讀 1042

白書板子考慮不周,上交小紅書板子也不好,kuangbin的板子上的from uestc的板子也有問題,網上那個題解抄kuangbin 的板子竟然也能a。最後我修正成了乙個自己的板子

#include#include#include#include#include#include#include#define maxl 20010

#define eps 1e-8

const double inf=1e9;

using namespace std;

inline int sgn(double x)

struct point

point operator + (const point &b)const

point operator - (const point &b)const

friend point operator * (const double &t,const point &a)

inline double norm() };

inline double dot(const point &a,const point &b)

inline double det(const point &a,const point &b)

struct halfplane

point operator &(const halfplane &b)const

};inline bool satisfy(point a,const halfplane l)

return sgn(det(a-l.s,l.e-l.s))<=0;

}inline bool hpicmp(const halfplane &a,const halfplane &b)

halfplane q[maxl];

void hpi(halfplane line,int n,point res,int &resn)

while(headtail--;

while(headhead++;

if(tail<=head+1) return;

for(int i=head;ires[resn++]=q[i]&q[i+1];

if(headres[resn++]=q[head]&q[tail];

}int n,cas,resn;

halfplane line[maxl];

point p[maxl],res[maxl];

double ans;

inline void prework()

line[0]=halfplane(p[0],p[n-1]);

line[n++]=(halfplane(point(-inf,-inf),point(inf,-inf)));

line[n++]=(halfplane(point(inf,-inf),point(inf,inf)));

line[n++]=(halfplane(point(inf,inf),point(-inf,inf)));

line[n++]=(halfplane(point(-inf,inf),point(-inf,-inf)));

}inline void mainwork()

inline void print()

int main()

return 0;

}

POJ 3525 半平面交

題意 求凸包內切圓最大半徑 題解 二分半徑,將凸包所有邊往凸包內平移這麼半徑長度,看平移後是否能圍成凸包.file main.cpp author swordholy created on 2011年3月25日,下午7 56 求凸包內切圓最大半徑 include include include in...

POJ 1755 Triathlon 半平面交

看的這裡 題意 鐵人三項比賽,給出 個人進行每一項的速度vi,ui,wi 對每個人判斷,通過改變3項比賽的路程,是否能讓該人獲勝 嚴格獲勝 思路 題目實際上是給出了n個式子方程,ti ai x bi y ci z 0 i n 要判斷第i個人能否獲勝,即判斷不等式組 tj ti 0,0 j n j i...

POJ 3384 Feng Shui 半平面交

題目給出兩個圓和乙個多邊形 問是否能讓兩個圓在多邊形內。並且覆蓋的面積最大 圓的半徑為r,我們則讓多邊形的每條邊都往內部退r距離。然後求半平面交得出的點集中,最遠的兩個點則是兩圓的圓心即可 include include include include include include include...