难度指数:⭐⭐
知识点: 动态规划 dp
2023华为od统一考试B卷【通过软盘拷贝文件】Python 实现
Mine:
代码实现
from time import time
def solve():
return 0
def solve0(nums0, total0):
if len(nums0) != 0 and nums0[0] > total0:
return 0
res = 0
for i in range(len(nums0)):
if total0 > nums0[i]:
temp = nums0[i] + solve0(nums0[i + 1:], total0 - (nums0[i] + 511) // 512 * 512)
else: break
res = max(res, temp)
return res
T = 1
while T:
N = int(input())
nums = [int(input()) for _ in range(N)]
nums.sort()
total = 1474560
t1 = time()
res = solve()
t2 = time()
res0 = solve0(nums, total)
t3 = time()
print(res, res0)
print(t3 - t2, t2 - t1)
T -= 1