HDU4973 【几何。】
题意:
给你一个以原点为圆心的两个圆,一个大圆,一个小圆,然后给你一个硬币和他的速度,问你经过大圆的时间;
思路:
直接杠。。
然后wa的怀疑人生,后面wa在了速度的方向,如果我说一个点在两个圆的左上方,那么速度也是左上方,那么就是0;
其他都还简单;
贴一发比赛时的挫代码。。。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <queue>
#include <stack>
using namespace std;
const int MAX=210;
const double eps=1e-3;
int n,m;
int main()
{
int i,j,t;
double Rm,r,R,x,y,vx,vy;
while(~scanf("%lf%lf%lf%lf%lf%lf%lf",&Rm,&R,&r,&x,&y,&vx,&vy))
{
double x1,x2,y1,y2,x3,x4,y3,y4;
double Rmr=(Rm+r)*(Rm+r);
double Rr=(r+R)*(r+R);
double a1=vx*vx+vy*vy;
double b1=2*(vx*x+vy*y);
double c1=x*x+y*y-Rr; double a2=vx*vx+vy*vy;
double b2=2*(vx*x+vy*y);
double c2=x*x+y*y-Rmr; double aa=vx*vx+vy*vy; // 碰不到大圆
if(b1*b1-4*a1*c1<=eps)
{
puts("0.000");
}
else
{
double time1,time2;
double dt1=sqrt(b1*b1-4*a1*c1);
time1=(-b1+dt1)/2.0/a1;
time2=(-b1-dt1)/2.0/a1;
if(time1<=eps)// 碰不到大圆 时间一定是正的
{
puts("0.000");
continue;
}
x1=time1*vx+x;
y1=time1*vy+y;
x2=time2*vx+x;
y2=time2*vy+y;
//只经过大圆
if(b2*b2-4*a2*c2<=eps)
{
double ans=((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))/aa;
printf("%.6lf\n",sqrt(ans));
}
else //经过小圆和大圆
{
double dt2=sqrt(b2*b2-4*a2*c2);
double time3,time4;
time3=(-b2+dt2)/2.0/a2;
time4=(-b2-dt2)/2.0/a2;
x3=time3*vx+x;
y3=time3*vy+y;
x4=time4*vx+x;
y4=time4*vy+y; double ans1=((x1-x4)*(x1-x4)+(y1-y4)*(y1-y4))/aa;
double ans2=((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3))/aa; double ans=min(ans1,ans2);
printf("%.6lf\n",2*sqrt(ans));
}
}
}
return 0;
}
/* */
HDU4973 【几何。】的更多相关文章
- 关于Three.js基本几何形状之SphereGeometry球体学习
一.有关球体SphereGeometry构造函数参数说明 <1>.SphereGeometry(radius, widthSegments, heightSegments, phiStar ...
- 几何服务,cut功能测试
关于几何服务 几何服务用于辅助应用程序执行各种几何计算,如缓冲区.简化.面积和长度计算以及投影.在 ArcGIS Server 管理器中启动几何服务之后,您才能够在应用程序开发过程中使用该服务. 问题 ...
- 几何服务,cut功能,输入要素target(修改后)内容。
几何服务,cut功能测试,输入要素target(修改后)内容. {"displayFieldName":"","fieldAliases": ...
- 几何服务,cut功能,输入要素target(修改前)内容。
几何服务,cut功能测试,输入要素target(修改前)内容. {"geometryType":"esriGeometryPolyline","geo ...
- 如何让你的UWP应用程序无缝调用几何作图
有时候需要编辑一些几何图形,如三角形,圆锥曲线等,在UWP应用中加入这些几何作图功能是件费时间又很难做好的事.其实Windows 10 应用商店中已有一些专业的几何作图工具了,那么能借来一用吗?答案是 ...
- poj 2031Building a Space Station(几何判断+Kruskal最小生成树)
/* 最小生成树 + 几何判断 Kruskal 球心之间的距离 - 两个球的半径 < 0 则说明是覆盖的!此时的距离按照0计算 */ #include<iostream> #incl ...
- NOIP2002矩形覆盖[几何DFS]
题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见图一. 这 ...
- DOM 元素节点几何量与滚动几何量
当在 Web 浏览器中查看 HTML 文档时,DOM 节点被解析,并被渲染成盒模型(如下图),有时我们需要知道一些信息,比如盒模型的大小,盒模型在浏览器中的位置等等,本文我们就来详细了解下元素节点的几 ...
- Get it,你离几何达人不远了!
对于爱学几何的人,是否存在这样的困扰:没有标准的尺规工具,图形画的不标准,理解上总是出错......整天在纸上画图,浪费大把大把的时间......几何图形画的不美观,在别人面前都拿不出手,公开课上都没 ...
随机推荐
- “ 不确定 "限制值的使用
前言 前篇文章解释了限制值的五种类型以及获取它们的方法.但是对于其中可能不确定的类型( 45类型 ),当限制值获取函数返回-1的时候,我们无法仅通过这个函数返回值-1来判断是限制值获取失败还是限制值是 ...
- ZeroClipboard—ZeroClipboard的使用
1.ZeroClipboard的作用: 借助Zero Clipboard能够简单高速地将内容拷贝到剪贴板,相似点击某些网页中"复制"按钮后复制对应区域的内容. 2.ZeroClip ...
- Git Xcode配置
本文转载至 http://www.cnblogs.com/imzzk/p/xcode_git.html 感谢作者分享 Git源代码管理工具的出现,使得我们开发人员对于源码的管理更加方便快捷.至于Git ...
- ASP.NET MVC4中ViewBag、ViewData和TempData的使用和区别
一.说明 本文章主要是讲解asp.net mvc中ViewBag.ViewData和TempData的使用和区别,ViewBag.ViewData和TempData常常用于将action方法中的数据传 ...
- C++笔记之外部类访问内部类的私有成员
如下图所示 内部类可以访问外部类的私有成员 而外部类无法访问内部类的私有成员 为了能让外部类访问内部类的私有成员,将外部类声明为内部类的友元类即可 #include <iostream> ...
- mongodb学习之:mongo安装以及远程访问
在linux下通过apt-get install mongo的方式一键式安装mongo 安装后mongo的配置文件位于/etc/mongodb.conf. 里面有mongo的各项配置,文件内容如下:重 ...
- svn提交异常file is scheduled for addition, but is missing
svn提交错误file is scheduled for addition, but is missing svn ci -m "" svn: E155010: Commit fa ...
- SAP建数据库索引
[转]SAP建数据库索引 %_hints db6 'INDEX("MKPF","MKPF~BUD")' db6 'INDEX(&quo ...
- Xmpp学习之Asmack取经-asmack入门(一)
1.XMPPConnection:它主要是用来创建一个跟XMPP服务端的Socket连接.它是与Jabber服务端的默认连接并且已经在RFC 3920中精确定义过了.示例如下: XMPPConnect ...
- ffmpeg遇到inttypes.h和UINT64_C
http://blog.csdn.net/cll131421/article/details/7763657 编译过程:错误一:无法打开包括文件:“inttypes.h”: No such file ...