题解(py)
2026-03-22 10:44:21
发布于:广东
1阅读
0回复
0点赞
import math
K = int(input().strip())
# 解 n(n+1)/2 <= K → n^2 + n - 2K <= 0
# 使用整数开方避免浮点误差
# n = floor((-1 + sqrt(1 + 8K)) / 2)
disc = 1 + 8 * K
n = (math.isqrt(disc) - 1) // 2
# 验证:确保 T(n) <= K < T(n+1)
T_n = n * (n + 1) // 2
if T_n > K:
n -= 1
T_n = n * (n + 1) // 2
# 前 n 轮金币和:1^2 + ... + n^2
S_n = n * (n + 1) * (2 * n + 1) // 6
# 剩余天数 r,属于第 (n+1) 轮,每天 (n+1) 枚
r = K - T_n
ans = S_n + r * (n + 1)
print(ans)
这里空空如也







有帮助,赞一个