NguyenQUy1801
Senior Member
dp memo ấy bácbài 3 nhìn giống dp mà k biết giải sao![]()
dp memo ấy bácbài 3 nhìn giống dp mà k biết giải sao![]()
còn 15p bác, ráng lên nàoLàm được 3 bài, bài 4 k làm đc,![]()

T làm xong 3 bài còn dư 1 tiếng lận, ngồi loay hoay nãy giờ k đc nên bỏ luôn,còn 15p bác, ráng lên nào![]()
. Bài này phải setup nhiều quá.
mình làm ntnbài 3 nhìn giống dp mà k biết giải sao![]()
counter[i][k] số phần tử k ở cột i
dp[i][k] = kết quả nếu chọn số k ở cột i
dp[i][k] = min(dp[i - 1][j]) + (m - counter[k][i]) với mọi j != k
0 <= k <= 9
không submit lần nào thì không bị trừ đâu bácđăng ký rồi mà ko tham gia có trừ điểm không nhỉ các fen, nay quên xừ nó mất.
Tiếc quá bác, contest này dễ thở hơn contest tuần trước.
Tiếc lắm mà nhậu về ko code nổi nên thôi, dồn sức tuần sau lên knight luôn thiếu tầm 30 điểm 2 contests nữa là vừa bácTiếc quá bác, contest này dễ thở hơn contest tuần trước.


Gang thậtclass Solution:
def numberOfStableArrays(self, zero: int, one: int, limit: int) -> int:
MOD = 10**9 + 7
@lru_cache(None)
def dp(zeroCount, oneCount, zeroRemaining, oneRemaining):
if zeroRemaining == 0 and oneRemaining == 0:
return 1
if zeroRemaining < 0 or oneRemaining < 0:
return 0
ans = 0
if zeroCount + oneCount > limit and zeroCount > 0 and oneCount > 0:
ans = dp(0, 0, zeroRemaining, oneRemaining)
else:
ans = dp(zeroCount + 1, oneCount, zeroRemaining - 1, oneRemaining) + dp(zeroCount, oneCount + 1, zeroRemaining, oneRemaining - 1)
return ans % MOD
return dp(0, 0, zero, one)
em ngồi tìm thuật toán O(n^2) cho q4 luôn, bỏ q3.
