本题的主要思路就是数学。
首先,让我们先来打一个表。
\(i\) | \(1\) | \(2\) | \(3\) | \(4\) | \(\dots\) |
---|---|---|---|---|---|
\(T_{i}\) | \(k\) | \(1.5k\) | \(1.5k\) | \(1.375k\) | \(\dots\) |
易用肉眼看见,自 \(T_{3}\) 之后数越来越小,于是我们大胆猜测,若 \(n\ne1\),则它的最大值是 \(1.5k\) 否则 \(k\)。
想到这里,其实就可以通过这道题啦。
不过这只是猜测,证明过程有一些复杂。
\(T_{i+1}-T_{i}=k+\frac{T_{i}}{i+1}-T_{i}=\frac{T_{i}}{i+1}-\frac{(i+1)T_{i}}{i+1}=-\frac{iT_{i}}{i+1}\)
因为 \(-\frac{iT_{i}}{i+1}\) 一定小于零,所以 \(T_{i+1}\) 一定小于 \(T_{i}\),但从打表中可以看出 \(T_{2}\) 和 \(T_{3}\) 是例外,所以结论与猜测的一样。若 \(n\ne1\),则它的最大值是 \(1.5k\) 否则 \(k\)。
AC Code
#include<iostream>
#include<cstring>
#define ll long long
using namespace std;
int t, n, k, a;
int main() {
cin >> t;
while (t--) {
cin >> n >> k;
if(n==1){
printf("%.1lf\n",k*1.0);
}else{
printf("%.1lf\n",k*1.5);
}
}
return 0;
}
标签:Spectral,1.5,%.,frac,P10781,题解,FLA
From: https://www.cnblogs.com/AUBSwords/p/18308885