厨师有一种熔点为 X 度的矿石。厨师窑的初始温度为 Y 度。在第 *i * 分钟之后,窑的温度增加 i 度。
找出矿石开始熔化的最短时间(以分钟为单位)。
注意事项:
我们只关心每一分钟结束时的温度,而不是一分钟。
如果窑的温度变得大于或等于熔点,则矿石开始熔化。
对于这个问题,这里是我的代码,我面对的是TLE:
t = int(input())
for i in range(t):
x, y = map(int, input().split())
time = 0
# x %= pow(10, 9) + 7
# y %= pow(10, 9) + 7
if x == y:
print(0)
else:
while(x>y):
time += 1
y += time
print(time)
1条答案
按热度按时间mutmk8jj1#
您的代码在
O(X)
时间内运行,对于此问题来说太慢了。他们想在恒定时间内得到一个解。你应该做的观察是:
Temperature(i) = Y + 1 + 2 + ... + i
那么
X = Y + i*(i+1)/2
。解出
i
的二次方程,就得到了常数时间解。