本蒟蒻第一篇题解,如有写错请帮忙改正~~
下面话归正题:
从家到办公室之间有 n(0≤n≤10) 条河流,且距离为 D(1≤D≤1000) 。
每条河流都有三个属性:p (0≤p<D) ,l(0≤l≤D) 和 v(1≤v≤100),p 是指从 A 到达这条河左岸的距离, l 是这条河的宽度,而 v 是指这条河上船行驶的速度,每条河上的船在两岸之间往返,时间开始时,船在河面上随机分布。求从家到办公室的期望时间。
本题有多组测试数据,当 n=D=0 时,输入结束。
一共有两种情况:
最好的
到达的时候船已经在恭候了,此时的时间为 t=l/v。
最坏的 到达时船刚刚离开,此时时间为 t=3×l/v。
可以发现船的位置时均匀分布的,因此平均过河时间为 t=2×l/v。
根据课本上期望的性质可以知道:可以将初始 ans 设置为 D ,则每次输入时减去 l,并加上期望时间 2×l/v 就可以啦!
#include<iostream>
using namespace std;
int n, d, p, l, v, cnt = 1;
double ans;
int main()
{
while( scanf( "%d %d", &n, &d ) )
{
if( n == 0 && d == 0 )
break;
ans = d;
for( int i = 0; i < n; i++ )
{
scanf( "%d %d %d", &p, &l, &v );
ans -= l;
ans += ( double )2 * l / v;
}
printf( "Case %d: %.3lf\n\n", cnt++, ans );
}
return 0;
}
敬请见谅我奇怪的码风 :D
点个赞再走啊 谢谢