如果您不知道解决方案,请留下它,其他人会给出答案,但不要投反对票。
t = int(input())
for i in range(t):
x,l,n = map(int, input().split())
for xi in range(x,-1,-1):
if xi*(2**(n-1))<=l:
print(x-xi)
break
以上是我的输入程序
1
1000000000000000000 0 1000000000000000000
我正在获得 MLE。我不明白。但在 hackerearth 中他们提到我们最多可以使用 256mb。
如果我在 C++ 中运行相同的逻辑,它工作正常。
我希望它运行时没有任何错误。
如果有人想问这个问题就麻烦了 -
凯特是巫师。现在她应该通过考试了。
考试期间她要进魔法室N次。最初房间里有 X 个魔法物品。每次访问之前,她可以使用魔法来减少房间中魔法物品的数量。对于每件物品,她都会花费 1 点法力值来摧毁它。每次访问后,魔法物品的数量会增加 2 倍。如果房间里的魔法物品超过 L 个,她就无法进入房间。凯特至少需要多少法力值才能通过考试?
您需要针对多个测试用例来解决这个问题。
t = int(input())
for i in range(t):
x,l,n = map(int, input().split())
if n>60:
print(x)
elif n==0:
print(0)
else:
for xi in range(x,-1,-1):
if xi*(2**(n-1))<=l:
print(x-xi)
break
我正在计算 2**9999999999999999 这占用了大量内存。所以我使用条件来检查该值直到 60。根据问题中给定的限制条件,我得出了 60 号。我通过对此问题的评论理解了这个错误。 感谢您的帮助...:)