题解:P10781 【MX-J1-T1】『FLA - III』Spectral

AUB Swords / 2024-07-18 / 原文

本题的主要思路就是数学。

首先,让我们先来打一个表。

\(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;
}