也是记忆数组的优化,python是不是本身就会耗时多一些?
  • 板块P1464 Function
  • 楼主ShiShen_hu
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/11/25 14:43
  • 上次更新2024/11/25 18:48:56
查看原帖
也是记忆数组的优化,python是不是本身就会耗时多一些?
1202850
ShiShen_hu楼主2024/11/25 14:43

看代码:

def fun(a, b, c):
    if a <= 0 or b <= 0 or c <= 0:
        return 1

    if a > 20 or b > 20 or c > 20:
        return fun(20, 20, 20)

    if a < b < c:
        return fun(a, b, c - 1) + fun(a, b - 1, c - 1) + fun(a, b - 1, c)

    if not Memory[a][b][c]:
        value = fun(a - 1, b, c) + fun(a - 1, b - 1, c) + fun(a - 1, b, c - 1) - fun(a - 1, b - 1, c - 1)
        Memory[a][b][c] = value

    return Memory[a][b][c]


data = []
Memory = [[[None for x in range(21)] for i in range(21)] for j in range(21)]
a = 1
while True:
    a, b, c = map(int, input().split())
    if a < 0: break
    data.append((a, b, c))

for i in data:
    print(f"w({i[0]}, {i[1]}, {i[2]}) =", fun(i[0], i[1], i[2]))

全部超时

2024/11/25 14:43
加载中...