bzoj 3190 賽車 半平面交

2022-04-30 08:51:05 字數 1615 閱讀 3734

直接寫的裸的半平面交,已經有點背不過模板了。。。

這題卡精度,要用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...