HDU 4793 Collision (解二元一次方程) -2013 ICPC长沙赛区现场赛
题目大意 :有一个圆硬币半径为r,初始位置为x,y,速度矢量为vx,vy,有一个圆形区域(圆心在原点)半径为R,还有一个圆盘(圆心在原点)半径为Rm (Rm < R),圆盘固定不动,硬币撞到圆盘上会被反弹,不考虑能量损失,求硬币在圆形区域内运动的时间。
运动方程:
x'=x+t*vx;
y'=y+t*vy;
r'=r1+r2;
x'^2+y'^2=r'^2;
难点在于如何构造出两个运动轨迹方程,为什么这么构造。
一共四种情况:
第一种:与外圆相离相切,输出0。
第二种:与外圆相交,与内圆相离相切,输出外圆两个解的差的绝对值。
第三种:与外圆相交,与内圆相交,输出外圆两个解的差的绝对值减去内圆两个解的差的绝对值。
第四种:与外圆相交即有两个解,但是两个解都是负的(要么都是负数要么都是正数),也就是说反向运动才能进入大圆,输出0。
#include <bits/stdc++.h>
const double eps=0.00000001;
using namespace std;
int main()
{
double Rm,R,r,x,y,vx,vy,k,b,flag;
while(scanf("%lf%lf%lf%lf%lf%lf%lf",&Rm,&R,&r,&x,&y,&vx,&vy)!=EOF)
{
double a1=vx*vx+vy*vy;
double b1=*x*vx+*y*vy;
double c1=x*x+y*y-(R+r)*(R+r);
double a2=vx*vx+vy*vy;
double b2=*x*vx+*y*vy;
double c2=x*x+y*y-(Rm+r)*(Rm+r);
double d1=b1*b1-4.0*a1*c1;
double d2=b2*b2-4.0*a2*c2;
double ansbig1=(-b1-sqrt(d1))/(2.0*a1);
double ansbig2=(-b1+sqrt(d1))/(2.0*a1);
double anssma1=(-b2-sqrt(d2))/(2.0*a2);
double anssma2=(-b2+sqrt(d2))/(2.0*a2);
if(d1<=eps) //与大圆相离
{
puts("0.000");
}
else if(ansbig2>=eps)//进入大圆
{ if(d2<=eps) //最好的情况
{
double ans=fabs(ansbig1-ansbig2);
printf("%.3f\n",ans);
}
else
{
double ans=fabs(ansbig1-ansbig2)-fabs(anssma1-anssma2);
printf("%.3f\n",ans);
}
}
else //反向 进入时间为负
puts("0.000");
}
return ;
}
HDU 4793 Collision (解二元一次方程) -2013 ICPC长沙赛区现场赛的更多相关文章
- 2014 ACM/ICPC 鞍山赛区现场赛 D&I 解题报告
鞍山现场赛结束了呢-- 我们出的是D+E+I三道题-- 吾辈AC掉的是D和I两道,趁着还记得.先在这里写一写我写的两道水题D&I的解题报告吧^_^. D题的意思呢是说星云内有一堆排成一条直线的 ...
- HDU 4793 Collision --解方程
题意: 给一个圆盘,圆心为(0,0),半径为Rm, 然后给一个圆形区域,圆心同此圆盘,半径为R(R>Rm),一枚硬币(圆形),圆心为(x,y),半径为r,一定在圆形区域外面,速度向量为(vx,v ...
- HDU 4811 Ball -2013 ICPC南京区域现场赛
题目链接 题意:三种颜色的球,现给定三种球的数目,每次取其中一个放到桌子上,排成一条线,每次放的位置任意,问得到的最大得分. 把一个球放在末尾得到的分数是它以前球的颜色种数 把一个球放在中间得到的分数 ...
- Substrings 第37届ACM/ICPC 杭州赛区现场赛C题(hdu 4455)
http://acm.hdu.edu.cn/showproblem.php?pid=4455 https://icpcarchive.ecs.baylor.edu/index.php?option=c ...
- HDU 5898 odd-even number (数位DP) -2016 ICPC沈阳赛区网络赛
题目链接 题意:一个数字,它每个数位上的奇数都形成偶数长度的段,偶数位都形成奇数长度的段他就是好的.问[L , R]的好数个数. 题解:裸的数位dp, 从高到低考虑每个数位, 状态里存下到当前位为止的 ...
- hdu 4431 第37届ACM/ICPC 天津赛区现场赛A题 枚举
题意:就是给了13张牌.问增加哪些牌可以胡牌.m是数字,s是条,p是筒,c是数字 胡牌有以下几种情况: 1.一个对子 + 4组 3个相同的牌或者顺子. 只有m.s.p是可以构成顺子的.东西南北这样 ...
- hdu 4438 第37届ACM/ICPC 天津赛区现场赛H题
题意:Alice和Bob两个人去打猎,有两种(只)猎物老虎和狼: 杀死老虎得分x,狼得分y: 如果两个人都选择同样的猎物,则Alice得分的概率是p,则Bob得分的概率是(1-p): 但是Alice事 ...
- 2013区域赛长沙赛区现场赛 K - Pocket Cube
K - Pocket Cube Time Limit:10000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
- 2013长沙赛区现场赛 J - Josephina and RPG
J - Josephina and RPG Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I6 ...
随机推荐
- WCF绑定类型选择
WCF绑定类型选择 发布日期:2010年12月10日星期五 作者:EricHu 在开发WCF程序时,如何选择一个适合的绑定对于消息传输的可靠性,传输模式是否跨进程.主机.网络,传输模式的支持. ...
- 【转载】利用Unity自带的合图切割功能将合图切割成子图
虽然目前网上具有切割合图功能的工具不少,但大部分都是自动切割或者根据plist之类的合图文件切割的, 这种切割往往不可自己微调或者很难维调,导致效果不理想. 今天逛贴吧发现了一位网友写的切割合图插件很 ...
- java框架
Dash Reports 1.0发布 Java报表解决方案 http://developer.51cto.com/art/201205/337189.htm http://www.oschina.ne ...
- 在ashx中使用Server对象
Server.MapPath() System.Web.HttpContext.Current.Server.MapPath()
- 浏览器兼容性之JavaScript篇
近期公司职务变动,我大部分工作时间都在做web前端开发.工作性质主要是跟javascript和css(层叠样式表)打交道,而JavaScript兼容性一直是Web开发者的心病,当然我也不例外,虽然我大 ...
- 【C语言入门教程】2.3 整型数据
没有小数位或指数的数据类型被称为整型数据,根据使用方法的分类,整型数据可分为整型常量和整型变量.根据定义或显示的数制分类,可分为十进制.八进制和十六进制. 2.3.1 整型常量 整型常量是在运算中不可 ...
- 原生js实现简单打字机效果
快过年了,公司基本没活,闲着也是闲着,就写了一个 打字机效果玩玩,感觉挺有意思的. 具体代码 请参见我的github,请戳这里 预览效果,请戳这里
- Gunicorn 问题
Does Gunicorn suffer from the thundering herd problem? The thundering herd problem occurs when many ...
- iOS开发——网络篇——UIWebview基本使用,NSInvocation(封装类),NSMethodSignature(签名),JavaScript,抛异常,消除警告
一.UIWebView简介 1.UIWebView什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但 ...
- iOS权限管理思路
iOS权限的分类: 1.功能级权限管理 2.数据级权限管理 权限的获取方式: 通常通过网络获取,会有延迟 使用到权限的场景: 1. 点击发送会员专享魔法表情, 判断是否有发送会员专享魔法表情的权限, ...