直接寫的裸的半平面交,已經有點背不過模板了。。。
這題卡精度,要用long double ,esp設1e-20。。。
#include#include#include
#include
#include
#include
#include
#define n 20005
#define double long double
#define inf 1e100
using
namespace
std;
intn;
const
double eps = 1e-20
;struct point//
點&向量
; point(
double _x,double
_y)
}p[n];
//點減點=向量
point operator - (point a,point b)
//向量+向量=向量 點+向量=點
point operator + (point a,point b)
//向量數乘
point operator * (point a,double b)
point
operator / (point a,double b)
//叉積
double cross(point a,point b)
int dcmp(double
x)struct
line
; line(point pp,point vv,
int_id)
friend
bool
operator
<(line aa,line bb)
}lines[n],dep[n*2];int
cnt;
point getpoint(line a,line b)
bool
onright(point a,line b)
inttot,h,t;
void
insert(line l)
if(h1]=getpoint(dep[t],dep[t-1
]);}
void
half()
while(h1],dep[h]))t--;
return;}
intv[n],pos[n];
inttt[n];
mapint,int>,int>mp;
vector
ss[n];
intmain()
sort(lines+1,lines+cnt+1
); half();
for(int i=h;i<=t;i++)}}
}printf(
"%d\n
",ans);
sort(tt+1,tt+ans+1
);
for(int i=1;i"
%d "
,tt[i]);
printf("%d
",tt[ans]);
return0;
}
bzoj3190 單調棧 賽車
description 這裡有一輛賽車比賽正在進行,賽場上一共有n輛車,分別稱為個g1,g2 gn。賽道是一條無限長的直線。最初,gi位於距離起跑線前進ki的位置。比賽開始後,車輛gi將會以vi單位每秒的恆定速度行駛。在這個比賽過程中,如果一輛賽車曾經處於領跑位置的話 即沒有其他的賽車跑在他的前面 ...
JLOI2013 賽車(半平面交)
很顯然的半平面交,需要注意幾個細節。首先三線交於一點的時候中間那個點不能彈,然後重合的直線顯然結果是相同的,再就是必須在第一象限。由於給的就是解析式,直接用解析式做半平面交就行了,我的寫法沒有用double include define ll long long define re register...
JOJ 2785 賽車 (半平面交)
jilin university online judge system 2785 賽車 吉林大學oj上的題目。中文題。這是經典的半平面交的模型。直接套用半平面交的模板,不過要注意,對有向直線排序的時候要用叉積來比較,不然精度會丟失,從而導致排序出錯。如下 1 include 2 include 3...