题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=1275

这题是一个数学题目,知道两个公式那就好办了;

对头相遇时:time*(v1+v2)=d*(2*i-1)

追击相遇时:time*(fabs(v1-v2))= d*(2*i-1)

这两个公式是这题的难点!其他一切好说。

#include<stdio.h>
#include<math.h>
#define esp 1e-10

double time[2000];

int main(void)
{
int t,n,i,j,k;
double d,v1,v2,f,dist,p,q;
scanf("%d",&t);
while(t--)
{
scanf("%lf%lf%lf%d",&d,&v1,&v2,&n);
q=999999999;//为了以防f==0即v1==v2时那种情况;
j=k=1;
f=fabs(v1-v2);
for(i=1;i<=n;i++)
{
p=((2*j-1)*d)/(v1+v2);
if(f>esp)
{
q=((2*k-1)*d)/f;
}
if(p<q)
{
time[i]=p;
j++;
}
else
{
time[i]=q;
k++;
}
}
dist=time[n]*v1;
while(dist>=d)
{
dist=dist-d;
}
printf("Time=%.3lf Dist=%.3lf\n",time[n],dist<d-dist?dist:d-dist);
}
return 0;
}

最新文章

  1. 自定义tld标签,页面使用
  2. SpringMVC文件上传实现
  3. Using Post_Query Trigger in Oracle Forms
  4. jmeter笔记8
  5. 第二百八十天 how can I 坚持
  6. C#之base关键字
  7. C# 客服端上传文件与服务器器端接收 (简单代码)
  8. POJ 3978 Primes(求范围素数个数)
  9. php添加扩展插件
  10. 【Netty】ChannelHandler和ChannelPipeline
  11. MAC下解决eclipse卡顿或者运行慢的问题
  12. Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
  13. Struts2学习笔记(二)——配置详解
  14. 对JVM虚拟机中方法区的理解
  15. 利用Github免费搭建个人主页(转)
  16. 与我们息息相关的internet服务(3)---电子邮件服务
  17. 关于git的一个错误提示
  18. 腾讯云Unbuntu服务器安装桌面环境
  19. 2016年3月12日Android学习笔记
  20. 状态 ajax

热门文章

  1. aapt: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64
  2. PKI 笔记
  3. PAT (Advanced Level) 1071. Speech Patterns (25)
  4. this.button1.Click += new System.EventHandler(this.button1_Click);
  5. MySQL5.7绿色版安装
  6. HTML之禁止输入文本
  7. Git 常用命令汇总
  8. 2016&quot;百度之星&quot; - 资格赛(Astar Round1) Problem A
  9. ubuntu apache2 ssl配置
  10. IIS Default Web Site : The service did not response to the start or control request in a timely fashion