Chciałbym policzyć złożoność czasową poniższego algorytmu, ale nie jestem pewien czy zrobiłem to dobrze. Bardzo prosiłbym o ewentualne korekty.
Algorytm:
Kod: Zaznacz cały
def ilość_1(C):
a = list(set(map(int, input().split())))
dp = [[0 for _ in range(len(a))] for __ in range(C + 1)]
dp[0][0] = 1
for i in range(C):
for j in range(len(a)):
for k in range(j, len(a)):
if i + a[k] <= C:
dp[i + a[k]][k] += dp[i][j]
return sum(dp[C])