火星救[数学,一点前缀和]

FM6CI4QCZ0I`FEA`~QX$MUH


本题是个数学推理 ,我们先要保证剩下的车油都是满的,所以每当报废一辆车,剩余的车要保证是油满的。


那么就推出来了每当行驶s/n(n = 1 ….n),公里报废一辆..。

由于数据量大暴力的话必超时,那么就要用前缀和的一点知识


附上代码:

  1 #include <cstdio>
  2 
  3 long double a[1000005];
  4 int main(){
  5 	a[1] = 1;
  6 	for(int i = 2; i <= 1000000; ++ i)
  7 		a[i] = a[i-1] + (long double)1.0 / i;
  8 	int T;
  9 	scanf("%d",&T);
 10 	while(T--){
 11 		int n;long long s;
 12 		scanf("%d%lld", &n, &s);
 13 		printf("%.10Lf\n", a[n] * s);
 14 	}
 15 	return 0;
 16 }

猜你喜欢

转载自www.cnblogs.com/rstz/p/12393210.html