Files
exams/algorithms/labs/lab8/code/dp/3.py
2025-10-01 22:55:09 +03:00

15 lines
453 B
Python

def find_max_form(strs, m, n):
dp = [[0] * (n + 1) for _ in range(m + 1)]
for s in strs:
z = s.count("0")
o = len(s) - z
for i in range(m, z - 1, -1):
for j in range(n, o - 1, -1):
dp[i][j] = max(dp[i][j], dp[i - z][j - o] + 1)
return dp[m][n]
if __name__ == "__main__":
print(find_max_form(["10", "0001", "111001", "1", "0"], 5, 3))
print(find_max_form(["10", "0", "1"], 1, 1))