题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5066
题目告诉我们,小球和车发生的是完全弹性碰撞,那么动能是守恒的,而碰撞过程中,动量也守恒。联立动能守恒,动量守恒方程。然后还有一个很特殊的条件,车的质量远大于小球,那么结合下实际情况,一个质量很小的物体撞质量很大的物体,大的物体的速度是不会发生变化的。有了这个条件,就可以求解了。推导过程如下:
用V表示碰撞前车的速度,V′表示碰撞后车的速度;用V0表示碰撞前球的速度,用V′0表示碰撞后球的速度;用M表示车的质量,用m表示球的质量。(M>>m)
12MV2+12mV20=12MV′2+12mV′20 ①
MV+mV0=MV′+mV′0 ②
⇒
12M(V+V′)(V−V′)=12m(V0+V′0)(V′0−V0) ③
M(V−V′)=m(V′0−V0) ④
由④可将③约成V+V′=V0+V′0
然后将V′视作V,可得V′0=2V−V0
代码:
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
int v,v0;
while(scanf("%d %d",&v,&v0)!=EOF)
{
printf("%d\n",2*v-v0);
}
return 0;
}