标签:
Input
Output
Sample Input
1 1 0 1 2 0 1 0 0
Sample Output
Case 1: 1.000 Case 2: 1.000
A,B相距D,A,B间有n条河,河宽Li,每条河上有一个速度为vi的船,在河山来回行驶,每条河离A的距离为pi,现在求从A到B时间的期望,步行速度始终为1;
船可以左右滑动;向左滑动的概率为1/2,向右滑动的概率1/2; 乘船所需时间 t= (1/2)*l/v+(1/2)*(l+l+l)/v[右移到河岸在回到左边再接人在回到右岸】
如果全都走路所需时间d*1;
走路时间+乘船时间-乘船那段距离走路需要的时间;
#include <cstdio>
#include <map>
#include <algorithm>
#include <string>
#include <cstring>
#include <iostream>
#include <vector>
#include <queue>
#include <list>
#include <cmath>
#include <set>
using namespace std;
const int maxn=50;
typedef long long ll;
struct boat
{
double p,l,v;
};
boat dv[maxn];
int main()
{
int N;
double D;
int kase=0;
while(scanf("%d%lf",&N,&D)&&(N+D))
{
double p,l,v;
if(N==0)
{
printf("Case %d: %.3lf\n\n",++kase,D*1.000);
continue;
}
double sum=0.000;
sum+=D;
for(int i=0; i<N; i++)
{
scanf("%lf%lf%lf",&p,&l,&v);
double t=(1.000/2)*l/v+(1.000/2)*(l*3/v)-l;
sum+=t;
}
printf("Case %d: %.3lf\n\n",++kase,sum);
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/AC-dream/p/5742494.html