hdu2175 两车追及或相遇问题
来源:互联网 发布:马刺 霍尔特 知乎 编辑:程序博客网 时间:2024/05/22 06:36
/...................................................................................................................................................................................................................................................................................................................\
貌似这个题在杭电上交的人数不太多哦,开始没想明白,想明白了原来是一个圆周追击与相遇问题,可以将题目中到达对面立即掉头理解为一个圆周运动,因为可以认为题目中连接2个城市的公路为双向车道,当考虑追击与相遇可以分开考虑,追击时候理解的路线图为
→→→→→→→→→→→→→→
↑ ↑→→→→→→→→→→→→↓ ↓
↑ ↑ ↓ ↓
↑ ↑←←←←←←←←←←←←↓ ↓
←←←←←←←←←←←←←←
开始的时候可以A在左边,B在右边,则为一个距离为半个圆周的追击问题,圆周长为2倍的甲乙间距离当第一次追击 成功后便改变为距离为一个圆周的追击问题, 这个时候可以发现从第二次开始以后每次追击距离都是一个圆周,则追击周期为第一追击耗时的两倍, 从第一次求第二次乃至以后的N次都是增加这个周期就能得到
当寻找相遇时可以让车辆改变行驶的车道,因为刚才图中依然能够理解到相遇,即对面行驶不同车道相遇,改变车道对追击与相遇不产生影响,但便于理解
→→→→→→→→→→→→→→
↑ ↓←←←←←←←←←←←←↑ ↓
↑ ↓ ↑ ↓
↑ ↓→→→→→→→→→→→→↑ ↓
←←←←←←←←←←←←←←
该图表示时可以理解为一个距离为半个圆周的相遇问题,当第一次相遇后可以改变为距离为一个圆周的相遇问题,此时跟上述原理一样,从第一次求第二次开始每次增加第一次耗时的两倍,按照周期则可求得N次相遇的时间
追击与相遇的分别的第N次时间已经可求,那给定总的第N次时间和最短距离便能搞定了
\.................................................................................................................................................................................................................................................................................................................../
#include<stdio.h>int main() { int a,n,i; double v1,v2,time1,time2,t1,t2,l1,l2,min,s; scanf("%d",&n); while(n--) { scanf("%lf%lf%lf%d",&s,&v1,&v2,&a); time1=s/(v1+v2); if(v1>v2) time2=s/(v1-v2); else if(v1<v2) time2=s/(v2-v1); else time2=0; t1=-time1; t2=-time2; for(i=1;i<=a;i++) { if(t1+2*time1<t2+2*time2||t2==0) { t1+=2*time1; min=t1; } else if(t2+2*time2<t1+2*time1) { t2+=2*time2; min=t2; } } l1=v1*min; while(l1>=s*2)l1-=2*s; if(l1>=s)l1=2*s-l1; l2=s-l1; if(l2<l1) l1=l2; printf("Time=%.3lf Dist=%.3lf\n",min,l1); } return 0; }
- hdu2175 两车追及或相遇问题
- hdu-1275 两车追及或相遇问题
- hdu_1275 两车追及或相遇问题
- HDOJ 1275 两车追及或相遇问题
- HDU1275--两车追及或相遇问题 HDU(102)
- 两车追及或相遇问题(hdu1275)数学题
- hdoj 两车追及或相遇问题 1275 (数学)
- hdoj.1275 两车追及或相遇问题【数学问题】 2015/05/29
- piotr_ants蚂蚁相遇问题练习
- 【面试总结】机器人相遇问题
- 相遇
- 相遇
- 相遇
- 相遇
- 相遇
- 相遇
- 相遇
- 相遇
- python cx_Oracle 5
- ggplot2系列:散点图qplot()
- Java语法糖的味道:泛型与类型擦除
- hdu 1002 A + B Problem II
- 悟透delphi 第十章 操作界面与操作逻辑
- hdu2175 两车追及或相遇问题
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- ios 数据解析中值为Null和空的判断
- python cx_Oracle 6
- 为select添加样式
- Android AsyncTask源码分析
- document.all用法
- python cx_Oracle 7
- 悟透delphi 第十一章 面向对象数据库基础