【题解】SP23976 题解
SP23976 题解
思路分析
小学数学题。
根据平均值定义,得到未加 之前的和是 ,加完后即 。同时,加 后平均值为 ,和为 。
于是可以列得等式 ,解得 。
由原式定义得到加完 的数列之和为 ,不妨记为 。现在,问题转化为这样:已知一个数列的和与项数,求该数列的最大值。
首先,这个数列要不同,于是先分配 作为打底。打底之后必会产生差,令 为 ,考虑 如何分配。显然,要想最大, 应该全部分配到 处,也就是 。据此计算便可得到结果。
关键代码
void solve(int x, int a)
{
int n = x - a; //项数
int s = (n + 1) * a; //数列和
int sd = (n + 1) * n / 2; //打底和
int p = sd - s; //打底差
cout << n + p << endl;
}

浙公网安备 33010602011771号