当初我看到它的公式这么复杂,所以就一下子忽略这题了,想起来还真有点后悔。
好的,我翻译一下这一的意思吧!其实就是告诉你两个人和一条狗各时刻的瞬时速度,让你求出两人相遇的时候狗跑了多长的距离。当然,这里的相遇只需要两人相距10m以内。这个看上去很复杂的积分题如果在你做的时候注意一些细节,那么你就可以瞬间秒杀它了。
我的做法是在积分的过程中,把sin(sin 2t)sin(cos 2t)看做一个整体,假设是间接时间x(因为两者是一一对应的)。那么,此时的两个人对其速度和的积分就只是积v=v 1sin(1)/x,最后在两人相遇前,所用的间接时间x=e (l1-10)/t。
同理,对狗的速度的积分将变成v=v 2cos(1)*1.55741/x,最后积得间接时间x内狗跑的距离s=v 2cos(1)*1.55741*ln x。
整理可得,狗在两人相遇前最多能跑的距离为s=v 2cos( 1)* 1.55741*(l 1- 10)/v 1/sin 1。然后就是比较数据给出狗跑的最长距离就可以得出答案了。
View Code
1 #include<stdio.h> 2 #include<math.h> 3 #include<stdlib.h> 4 #include< string.h> 5 6 int main() 7 { 8 int T; 9 double s, l1, l2, v1, v2; 10 11 scanf( " %d ", &T); 12 while(T--) 13 { 14 scanf( " %lf%lf%lf%lf ", &l1, &l2, &v1, &v2); 15 s=cos( 1)* 1.55741*v2*(l1- 10)/v1/sin( 1); 16 if(s< 0)printf( " 0\n "); 17 else if(s>l2)printf( " %.0lf\n ", l2); 18 else printf( " %.0lf\n ", s); 19 } 20 return 0; 21 }
written by Lyon