NC15760. 郊游
描述
输入描述
第一行输入一个整数m,代表m组数据。
接下来m行,输入5个正整数n,l,v1,v2,k。
其中1≤m≤1000,1≤n≤10000, 1≤l≤109, 1≤v1<v2≤109, 1≤k≤n
输出描述
输出一行,为一个实数。代表萌新确定到达目的地所用的时间(保留10位小数,考虑上车下车、车掉头时间不计)
示例1
输入:
1 3 6 1 2 1
输出:
4.7142857143
C++14(g++5.4) 解法, 执行用时: 5ms, 内存消耗: 348K, 提交时间: 2019-02-16 16:39:12
#include <bits/stdc++.h> using namespace std; int main() { int t; scanf("%d", &t); while (t--) { int n, k; double l, v1, v2; scanf("%d%lf%lf%lf%d", &n, &l, &v1, &v2, &k); int p = (n - 1) / k; long double x = l / (p * (long double)(2 * v1 / (v1 + v2)) + 1); printf("%.10Lf\n", x / v2 + (l - x) / v1); } }
C(clang 3.9) 解法, 执行用时: 2ms, 内存消耗: 224K, 提交时间: 2019-03-14 18:30:31
#include "stdio.h" int main(){ int m,n,k,r; double v1,v2,t,tl,l,g; scanf("%d",&m); while(m--){ scanf("%d %lf %lf %lf %d",&n,&l,&v1,&v2,&k); r = n/k + ((n%k) ? 1:0); g = l*(v1+v2)/((2*r-1)*v1+v2); t=(l-g)/v1+g/v2; printf("%.10f\n",t); } return 0; }
C++(g++ 7.5.0) 解法, 执行用时: 4ms, 内存消耗: 476K, 提交时间: 2022-11-10 20:36:28
#include<bits/stdc++.h> using namespace std; void solve() { int n,l,k; double v1,v2; cin>>n>>l>>v1>>v2>>k; int res=(n+k-1)/k; double s=(v1+v2)*l/(2*v1*res-v1+v2); printf("%.10f\n",s/v2+(l-s)/v1); } signed main() { int t; cin>>t; while(t--)solve(); return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 500K, 提交时间: 2020-03-11 21:03:59
#include<cstdio> int main() { int n,k; double l,v1,v2; int t; scanf("%d",&t); while(t--) { scanf("%d%lf%lf%lf%d",&n,&l,&v1,&v2,&k); int g=(n+k-1)/k; double a=(v1+v2)*l/(v1*(2*g-1)+v2); printf("%.10f\n",a/v2+(l-a)/v1); } return 0; }
Python3(3.5.2) 解法, 执行用时: 30ms, 内存消耗: 3404K, 提交时间: 2020-04-28 18:59:55
m=int(input()) while m: m-=1 try: n,l,v1,v2,k=map(int,input().split(' ')) except: pass if n%k==0: p=n//k else: p=n//k+1 x=(v1+v2)*l/(v2+(2*p-1)*v1) t=x/v2+(l-x)/v1 print('%.10f'%t)