NC13231. 身体训练
描述
输入描述
第一行整数n(<=1000), 实数v(<=100) , 实数u(<=10) 第二行n个实数每个人的速度c[i](<=50000) 第三行n个实数值每个人衰减量d[i](<=10) 输入数据保证每个人的速度不会衰减到<=v
输出描述
答案保留3位小数。
示例1
输入:
10 37.618 0.422 72.865 126.767 202.680 106.102 99.516 134.418 167.952 173.646 120.210 136.571 2.941 3.664 7.363 4.161 0.246 8.046 5.521 7.473 7.178 5.649
输出:
0.815
Python3 解法, 执行用时: 428ms, 内存消耗: 4712K, 提交时间: 2023-08-05 08:35:41
n, v, u = map(float, input().split()) c = list(map(float, input().split())) d = list(map(float, input().split())) t = 0 for i in range(int(n)): for j in range(int(n)): t += n * u / (c[i] - j * d[i] - v) every = t / n print("%.3f" % every)
C++(clang++ 11.0.1) 解法, 执行用时: 6ms, 内存消耗: 396K, 提交时间: 2022-08-06 23:14:36
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e3+5; double c[N],d[N],f[N]; int main(){ int n; double v,u; cin>>n>>v>>u; double ans=0; for(int i=1;i<=n;i++) cin>>c[i]; for(int i=1;i<=n;i++) cin>>d[i]; for(int i=1;i<=n;i++){ for(int j=0;j<n;j++){ f[i]+=1.0/(c[i]-v-j*d[i]); } ans+=f[i]*u; } printf("%.3lf\n",ans); return 0; }
Java 解法, 执行用时: 337ms, 内存消耗: 20264K, 提交时间: 2023-08-08 15:56:49
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n=in.nextInt(); double v=in.nextDouble(); double u=in.nextDouble(); double[] c=new double[n]; for(int i=0;i<n;i++) { c[i]=in.nextDouble(); } double sum=0.0; for(int i=0;i<n;i++) { double d=in.nextDouble(); for(int j=1;j<=n;j++) { sum+=u/(c[i]-v-(j-1)*d); } } System.out.printf("%.3f",sum); } }