题解 SP34011 【JGTLE - Jalil Got TLE】
这道题目的暴力可以一直优化。
首先我们来看题目的代码,
明显可以看出,第一层
所以时间复杂度从 TLE。怎么办呢?
我们又可以发现,第三层循还可以简化成等差数列公式,
再来看看第二重循环,哟,这不也是个等差数列吗?
发现这个result += j * k;可以转化成result+=j*(1+c)*c/2。
我们惊喜地发现,这个j也是递增的,而且可以根据乘法分配律得知:
倒过来:
实际上,我们求出前面所有
于是,因为等差数列公式得知,前面所有
然后就变成了这样:
result=((1+b)*b/2)*((1+c)*c/2)。
于是最后时间复杂度一直简化,从
答案就是
细节:注意long long,末尾不要忘记乘上最后的
没了。