我的这篇题解为什么审核不过啊
  • 板块灌水区
  • 楼主Bobxing
  • 当前回复16
  • 已保存回复16
  • 发布时间2023/7/26 13:35
  • 上次更新2023/11/3 07:34:56
查看原帖
我的这篇题解为什么审核不过啊
698354
Bobxing楼主2023/7/26 13:35

本蒟蒻第一篇题解,如有写错请帮忙改正~~

下面话归正题:

  • 本题简述

从家到办公室之间有 nn(0≤n≤100 \le n \le 10) 条河流,且距离为 DD(1≤D≤1000 1 \le D \le 1000) 。

每条河流都有三个属性:pp (0≤p<D0\le p<D) ,ll(0≤l≤D0 \le l\le D) 和 vv(1≤v≤1001 \le v \le 100),pp 是指从 AA 到达这条河左岸的距离, ll 是这条河的宽度,而 vv 是指这条河上船行驶的速度,每条河上的船在两岸之间往返,时间开始时,船在河面上随机分布。求从家到办公室的期望时间。

本题有多组测试数据,当 n=D=0n=D=0 时,输入结束。

  • 解题方法

一共有两种情况:

  • 最好的

    到达的时候船已经在恭候了,此时的时间为 t=l/v t=l/v。

  • 最坏的 到达时船刚刚离开,此时时间为 t=3×l/vt=3\times l/v。

可以发现船的位置时均匀分布的,因此平均过河时间为 t=2×l/vt=2\times l/v。

根据课本上期望的性质可以知道:可以将初始 ansans 设置为 DD ,则每次输入时减去 ll,并加上期望时间 2×l/v2\times l/v 就可以啦!

  • 代码code

#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

点个赞再走啊 谢谢

2023/7/26 13:35
加载中...