分则能成分则能成分则能成
最初想法\color{blue}{最初想法}最初想法
发现大多数情况下将数字nnn分作 n/2−1n/2-1n/2−1, n/2n/2n/2, 或 n/2+1n/2+1n/2+1 结果最优,
然后最后一次分解直接分作 n/2n/2n/2 .
正解部分\color{red}{正解部分}正解部分
最终 一定分成 K+1K+1K+1 个数字, 设为 a1,a2,a3...ama_1, a_2, a_3...a_ma1,a2,a3...am,
发现 aia_iai 之间恰好每个之间都乘了一次 累加后得到答案 .
于是答案为 12∑i=1mai∗(N−ai)\frac{1}{2}\sum\limits_{i=1}^ma_i*(N-a_i)21i=1∑mai∗(N−ai) , 可以证明当 aia_iai 最平均时答案最大 .
m=K+1m = K+1m=K+1
实现部分\color{red}{实现部分}实现部分
现将 NNN 分为 K+1K+1K+1 份, 然后将 N%(K+1)N\%(K+1)N%(K+1) 平均分布到这 K+1K+1K+1 份中 .
#include<bits/stdc++.h>
typedef long long ll;
ll N;
ll K;
int main(){
freopen("Split.in", "r", stdin);
freopen("Split.out", "w", stdout);
scanf("%lld%lld", &N, &K);
ll Ans = (K+1-N%(K+1)) * (N/(K+1)) * (N - N/(K+1));
Ans += (N%(K+1))*(N/(K+1)+1)*(N-N/(K+1)-1);
printf("%lld\n", Ans >> 1);
return 0;
}