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

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

#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;
}

[几何] BZOJ 2710 [Violet 1]追风者 POJ 3924 Tornado相关推荐

  1. BZOJ 2709 Violet 1 迷宫花园

    2709: [Violet 1]迷宫花园 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 976  Solved: 340 [Submit][Statu ...

  2. [Luogu P4168] [BZOJ 2724] [Violet]蒲公英

    洛谷传送门 BZOJ传送门 题目背景 亲爱的哥哥: 你在那个城市里面过得好吗? 我在家里面最近很开心呢.昨天晚上奶奶给我讲了那个叫「绝望」的大坏蛋的故事的说!它把人们的房子和田地搞坏,还有好多小朋友也 ...

  3. bzoj 2724[Violet 6]蒲公英

    2724: [Violet 6]蒲公英 Time Limit: 40 Sec  Memory Limit: 512 MB Submit: 2630  Solved: 920 [Submit][Stat ...

  4. BZOJ 2716: [Violet 3]天使玩偶

    2716: [Violet 3]天使玩偶 Time Limit: 80 Sec  Memory Limit: 128 MB Submit: 1473  Solved: 621 [Submit][Sta ...

  5. Bzoj 2724: [Violet 6]蒲公英(分块)

    2724: [Violet 6]蒲公英 Time Limit: 40 Sec Memory Limit: 512 MB Description Input 修正一下 l = (l_0 + x - 1) ...

  6. bzoj 2724: [Violet 6]蒲公英(分块预处理)

    2724: [Violet 6]蒲公英 Time Limit: 40 Sec  Memory Limit: 512 MB Submit: 2464  Solved: 848 [Submit][Stat ...

  7. BZOJ 2716 Violet 3 天使玩偶

    2716: [Violet 3]天使玩偶 Time Limit: 80 Sec  Memory Limit: 128 MB Submit: 2145  Solved: 928 [Submit][Sta ...

  8. BZOJ 2716 [Violet 3]天使玩偶 (CDQ分治、树状数组)

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2716 怎么KD树跑得都那么快啊..我写的CDQ分治被暴虐 做四遍CDQ分治,每次求一个 ...

  9. BZOJ 2720 [Violet 5]列队春游 ——期望DP

    很喵的一道题(我可不是因为看了YOUSIKI的题解才变成这样的) $ans=\sum_{x<=n}\sum_{i<=n} iP(L=i)$ 其中P(x)表示视线为x的概率. 所以只需要求出 ...

最新文章

  1. LeetCode中等题之两两交换链表中的节点
  2. 2-Entity RANSAC:在变化的环境中进行稳健的视觉定位
  3. 第三周 数据分析之概要 Pandas库数据特征分析
  4. 注意!!一定要谨慎使用c/c++原生指针
  5. boost::random模块使用多精度类型测试所有与浮点相关的生成器和分布的测试程序
  6. poj 3522 Slim Span
  7. oracle数据泵导出csv文件,数据泵expdp导出遇到ORA-01555和ORA-22924问题的分析和处理...
  8. ConcurrentHashMap 源码
  9. MyBatis框架笔记03:MyBatis实现CRUD
  10. CCNA红头发视频教程全集---91lab
  11. centos7部署gitlab遇到的坑
  12. centos7 端口3306无法连接问题
  13. php45欧米伽_PHP中的数字格式5.5到5.50 - php
  14. 第十二天-函数名 迭代器
  15. Linux ubuntu下载及安装教程
  16. Python的scrapy之爬取6毛小说网
  17. PHP 记录访客的浏览信息
  18. python 天勤 金叉 编程代码_GitHub - Oscar201106/tqsdk-python: 天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易...
  19. C\C++开发的经典魔塔小游戏--(3)主要逻辑处理,角色控制
  20. 【如何更新几十万上百万的数据在ORACLE和MYSQL】

热门文章

  1. unity ios系统相机相册 IOS16 自动横屏
  2. Hive中的left semi join和left anti join
  3. xshell进入桌面_xshell中启动linux图形界面
  4. 虚拟机黑裙加载硬盘_虚拟机黑群晖拯救实体黑群晖硬盘数据-全网首发。
  5. java jcmd,JVM工具_jcmd
  6. 【创新实训】BERT4EL,基于文本相似度的实体消歧实现
  7. 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用
  8. 单人扑克游戏:地城恶棍的Python实现(附实现代码)
  9. Pycharm的安装并且连接已有的Python环境实现自由编译(附中文配置)|并通过Pycharm实现增加网站访问
  10. 学透CSS-当CSS遇到古诗和月亮,月亮动起来!!!