[几何] BZOJ 2710 [Violet 1]追风者 POJ 3924 Tornado

news/2025/2/13 22:38:11/

好神的几何题
把一个点不动作为参照物 然后就变成了只有一个点在动
画出来就是这样

这里写图片描述

然后就是求 一个点到两组平行线段的距离最小值

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef double ld;inline ld sqr(ld x){ return x*x; }
inline int sgn(ld x){if (fabs(x)<1e-8) return 0;return x<0?-1:1;
}struct PP{ld x,y;PP(ld x=0,ld y=0):x(x),y(y) { }bool read() { double _x,_y; if (scanf("%lf%lf",&_x,&_y)==-1) return 0; x=_x; y=_y; return 1; }ld dist() { return sqrt(x*x+y*y); }PP operator - () { return PP(-x,-y); }friend PP operator + (PP A,PP B) { return PP(A.x+B.x,A.y+B.y); }friend PP operator - (PP A,PP B) { return PP(A.x-B.x,A.y-B.y); }friend PP operator * (PP A,ld B) { return PP(A.x*B,A.y*B); }friend PP operator / (PP A,ld B) { return PP(A.x/B,A.y/B); } friend ld operator * (PP A,PP B) { return A.x*B.x+A.y*B.y; }friend ld cross(PP A,PP B) { return A.x*B.y-A.y*B.x; }friend ld dist(PP A,PP B) { return sqrt(sqr(A.x-B.x)+sqr(A.y-B.y)); }
};inline ld calc(PP p,PP A,PP B){if (sgn(A.x-B.x)==0 && sgn(A.y-B.y)==0)return dist(p,A);if (sgn((p-A)*(B-A))>0 && sgn((p-B)*(A-B))>0)return fabs(cross(p-A,B-A))/dist(A,B);return min(dist(A,p),dist(B,p));
}inline ld calc(PP p,PP A,PP B,PP D){int L=0,R=1<<28,m1,m2; ld f1,f2;while (R-L>12){m1=(L+L+R)/3; m2=(L+R+R)/3;f1=calc(p,A+D*m1,B+D*m1);f2=calc(p,A+D*m2,B+D*m2);if (f1<f2)R=m2;elseL=m1;}ld ret=1e20;for (int i=L;i<=R;i++)ret=min(ret,calc(p,A+D*i,B+D*i));return ret;
}ld vw,vt;
PP w0,w1,t0,t1;
ld mind,maxd;inline void Solve(){ld Time=dist(t0,t1)/vt;PP tg=(t1-t0)/dist(t0,t1)*vt;PP wg=(w1-w0)/dist(w0,w1)*vw;PP p1=t0+(tg-wg)*Time;PP p2=p1+(-tg-wg)*Time;ld d1=calc(w0,t0,p1,p2-t0);ld d2=calc(w0,p1,p2,p2-t0);ld d=min(d1,d2);if (sgn(d-maxd)>0)printf("Miss\n");else if (sgn(mind-d)>0)printf("Dangerous\n");elseprintf("Perfect\n");
}int main(){freopen("t.in","r",stdin);freopen("t.out","w",stdout);while (w0.read()){w1.read(); scanf("%lf",&vw);t0.read(); t1.read(); scanf("%lf",&vt);scanf("%lf%lf",&mind,&maxd);Solve();}return 0;
}

http://www.ppmy.cn/news/862534.html

相关文章

DataLake — 批流一体化的追风者(2) -- Delta Lake核心原理解析

一、Delta Lake 1.Delta Lake基础概述 接上文&#xff0c;我们全面地讲解了Data Lake相关的概念、对比区别以及实际发展历程等。那么这篇首章开篇我们来讲历史最为悠久的Delta Lake。它的定位是流批一体的存储中间层&#xff0c;支持 update/delete/merge。由于出自Databricks&…

DataLake — 批流一体化的追风者(1)

技术分享知识经验解决方案架构 本次将之前讲解的DataLake相关的课程资料整理后发出&#xff0c;供大家参考学习&#xff0c;后续有问题可知音楼交流。 一、DataLake 概述 数据湖从本质上来讲&#xff0c;是一种企业数据架构方法&#xff0c;物理实现上则是一个数据存储平台&…

从“弄潮儿”到“追风者”,康师傅还能引领市场吗?

如果对康师傅近十年的发展历程做一个回顾&#xff0c;可以发现一个非常有意思的现象&#xff1a;2013年&#xff0c;康师傅营收达到667亿元&#xff0c;此后一路走低&#xff0c;直到2020年才重新回到7年前的水平。 在国内快消品市场蓬勃发展的时候&#xff0c;康师傅却画出了…

百度购YY:追风者能翻盘?

出品 / 新浪科技 ID&#xff1a;techsina 作者 / 杨雪梅 经历了上半年又一次大的团队调整后&#xff0c;百度在2020年第三季度交出了一份相对不错的财报&#xff1a;总营收282亿元&#xff0c;增长幅度不大&#xff0c;但净利润137亿元&#xff0c;环比增长282%&#xff0c;相比…

追风者变引领者:Horwin的技术攀爬

短短几年时间&#xff0c;智能化、电动化的浪潮席卷车市&#xff0c;催生了蔚来、理想等颇具规模的新能源汽车新势力。与此同时&#xff0c;国内外摩托车厂商加速布局电气新赛道&#xff0c;加快了摩托车市场电动化、智能化变革进程。 11月1日&#xff0c;常州浩万新能源有限公…

python 视频加字幕_Python追风者之视频编辑moviepy

说起Python,大家可能最熟悉的莫过于那句“人生苦短,我用Python”,尤其是人工智能的兴起,让Python像是站在风口浪尖上的新宠儿,备受青睐。说的夸张一点,如果这世界上有一件事,Python做不了,那就是生孩子。。。哈哈哈,虽然言过其实,然而Python确实有过人之处,作为一个…

车联网永远不乏追风者

配图来自Canva 随着国内智能电动车行业的飞速发展&#xff0c;智能电动车的车载生态也开始逐渐完善。智能车载娱乐系统作为整个智能生态当中的重要组成部分&#xff0c;日渐成为各大厂争相入局的焦点领域。目前国内企业中&#xff0c;除了阿里、腾讯、百度这些互联网巨头之外&…

垃圾收集器ParNew-JVM(十)

上篇文章介绍了老年分担机制&#xff0c;在minorGC前会先判断一下老年代剩余空间是否大于需要移动的数据&#xff0c;如果大则直接fullGC&#xff0c;否则会看看是否配置了参数&#xff0c;没有则直接fullGC,有的话再算每次yangGC的平均值&#xff0c;再次比较老年代剩余空间&a…