正经题解 —— 诗人看的解法
2024-12-03 21:30:37
发布于:浙江
4阅读
0回复
0点赞
#include <iostream>
using namespace std;
int main() {
int k;
cin >> k;
int m = 1;
while (m * (m + 1) / 2 < k) {
int r = k - m * (m - 1) / 2;
int total_coins = (m - 1) * m * (2 * m - 1) / 6 + m * r;
cout << total_coins << endl;
return```
### 信奥知识教授
- **求和公式**:\(\sum_{^{n} i = \frac{n(n+1)}{2}\)
公式**:\(\sum_{i=1}^{n} i^2 = \frac{n(n+1)(2n+1)}{6}\)
- **二分查找**:用于快速找到满足条件的 \(m\)。
通过这些数学工具,我们可以将时间复杂度从 \(O(k)\) 优化到 \(O(\sqrt{k})\),从而提高程序的效率。
这里空空如也
有帮助,赞一个