博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ3525 Most Distant Point from the Sea
阅读量:6423 次
发布时间:2019-06-23

本文共 1375 字,大约阅读时间需要 4 分钟。

半平面交+二分

二分最远距离把每个直线往里移这个距离然后看一下半平面交是否存在就好

然后注意精度问题 【poj G++需要用%f C++没有问题

//Love and Freedom.#include
#include
#include
#include
#define inf 20021225#define ll long long#define db double#define eps 1e-6#define N 1010using namespace std;struct poi{ db x,y; poi(){} poi(db _x,db _y){x=_x,y=_y;}};typedef poi vec;vec operator +(vec a,vec b){
return vec(a.x+b.x,a.y+b.y);}vec operator -(vec a,vec b){
return vec(a.x-b.x,a.y-b.y);}vec operator *(vec a,db b){
return vec(a.x*b,a.y*b);}db cross(vec a,vec b){
return a.x*b.y-a.y*b.x;}db dis(vec a){
return sqrt(a.x*a.x+a.y*a.y);}struct line{ poi p; vec v; db ang; line(){} line(poi p1,poi p2){p=p1; v=p2-p1; ang=atan2(v.y,v.x);}}r[N],l[N];void put(poi a){ printf("%lf %lf\n",a.x,a.y);}void putl(line l){ printf("----line----\n"); put(l.p); put(l.v); printf("%lf\n",l.ang);}poi section(line a,line b){ db k = cross(a.p-b.p,a.p+a.v-b.p)/(cross(a.p-b.p,b.v)+cross(b.v,a.p+a.v-b.p)); return b.p+b.v*k;}bool onleft(line a,poi b){
return cross(a.p+a.v-b,a.p-b)
n?1:i+1]); sort(r+1,r+n+1,cmp); //for(int i=1;i<=n;i++) putl(r[i]); printf("%lf\n",solve()); } return 0;}
View Code

 

转载于:https://www.cnblogs.com/hanyuweining/p/10360028.html

你可能感兴趣的文章
FastDFS蛋疼的集群和负载均衡(十七)之解决LVS+Keepalived遇到的问题
查看>>
深入剖析Redis系列(二) - Redis哨兵模式与高可用集群
查看>>
Android 用于校验集合参数的小封装
查看>>
iOS混合开发库(GICXMLLayout)七、JavaScript篇
查看>>
instrument 调试 无法指出问题代码 解决
查看>>
理解缓存
查看>>
im也去中心化?Startalk(星语)的去中心化设计之路
查看>>
BAT 经典算法笔试题 —— 磁盘多路归并排序
查看>>
一次完整的HTTP请求
查看>>
Nginx限制带宽
查看>>
All Web Application Attack Techniques
查看>>
归档日志ORA-19809: 超出了恢复文件数的限制
查看>>
精品德国软件 UltraShredder 文件粉碎机
查看>>
PANDAS 数据合并与重塑(join/merge篇)
查看>>
文件时间信息在测试中的应用
查看>>
直播疑难杂症排查(8)— 播放杂音、噪音、回声问题
查看>>
如何写gdb命令脚本
查看>>
Android ListView展示不同的布局
查看>>
iOS宏(自己使用,持续更新)
查看>>
手把手玩转win8开发系列课程(3)
查看>>