HDU 6097 Mindis(计算几何)
来源:互联网 发布:签章软件下载 编辑:程序博客网 时间:2024/06/06 10:07
Description
给出一个圆心为
Input
第一行一个整数
Output
对于每组用例,输出
Sample Input
4
4
4 0
0 4
4
0 3
3 0
4
0 2
2 0
4
0 1
1 0
Sample Output
5.6568543
5.6568543
5.8945030
6.7359174
Solution
考虑
如果
如果
Code
#include<cstdio>#include<cmath>using namespace std;#define eps 1e-8int sign(double x){ if(fabs(x)<eps)return 0; if(x>eps)return 1; return -1;}double dis(double x0,double y0,double x1,double y1){ double x=x1-x0,y=y1-y0; return sqrt(x*x+y*y);}int main(){ int T; double xp,yp,xq,yq,r; scanf("%d",&T); while(T--) { scanf("%lf%lf%lf%lf%lf",&r,&xp,&yp,&xq,&yq); double OP=dis(xp,yp,0,0),ans; if(sign(OP)==0)ans=2.0*r; else { double xr=0.5*(xp+xq),yr=0.5*(yp+yq); double OR=dis(xr,yr,0,0); double ORR=OR*r*r/(OP*OP); if(sign(ORR-r)<=0)ans=dis(xp,yp,xq,yq)*r/OP; else { double xs=xr*r/OR,ys=yr*r/OR; ans=2.0*dis(xp,yp,xs,ys); } } printf("%.10f\n",ans+eps); } return 0;}
阅读全文
0 0
- HDU 6097 Mindis(计算几何)
- HDU 6097 Mindis(计算几何)
- HDU 6097 Mindis【计算几何】
- HDU 6097 Mindis(几何)
- (2017多校6)1002/hdu-6097 Mindis(计算几何)
- HDU 6097 Mindis【计算几何+反演点】
- hdu 6097 Mindis(几何)
- HDU 6097 Mindis【几何】
- HDU 6097 Mindis 几何
- hdu 6097 Mindis(几何反演)
- hud 6097 Mindis(几何)
- 多校6 HDU-6097 Mindis 几何数学
- 2017多校六 1002题 hdu 6097 Mindis 相似三角形 计算几何
- HDU 2017 多校联合训练赛6 1002 6097 Mindis 反演变换 计算几何
- hdu6097—Mindis(计算几何)
- 多校 HDU6097 Mindis (几何)
- hdu 6097 Mindis(多校联赛)
- HDU 6097 Mindis(圆的反演)
- emacs快捷键-缓冲区的操作
- JavaScript中split()和join()方法的使用
- 【腾讯Bugly干货分享】深入理解 ButterKnife,让你的程序学会写代码
- 混合模式
- tcpdump命令使用
- HDU 6097 Mindis(计算几何)
- JavaGC
- java常用api总结
- TextRank算法
- Android 一个app启动另一个app
- Oracle 11gR2 Client 客户端安装步骤(图文详解)
- leetcode快速幂—— 50. Pow(x, n)
- jquery动态新增的元素无法触发事件问题的解决办法方法
- android studio 打包时xml文件中 string 没有翻译的解决办法