Asosiy tarkibga o‘tish
CodeArena
Kirish
Kurslar

Dinamik dasturlash · Katta masalani kichik masalalar javobidan yig‘ish

Dinamik dasturlash

Hard 3 masala

Boshlash

Nazariya

Dinamik dasturlash (DP): katta masalaning javobini kichik masalalar javobidan yig‘ish va har birini bir marta hisoblash.

  1. Holat: dp[i] nimani bildiradi? (masalan, i summani to‘lash uchun eng kam tanga)
  2. O‘tish: dp[i] = min(dp[i - c] + 1 for c in coins)
  3. Boshlang‘ich: dp[0] = 0
  4. Javob: dp[n]
INF = float("inf")
dp = [0] + [INF] * n
for i in range(1, n + 1):
    for c in coins:
        if c <= i:
            dp[i] = min(dp[i], dp[i - c] + 1)

Zinapoya masalasi — eng oddiy DP: dp[i] = dp[i-1] + dp[i-2].

Easy masalalar 1

  • dynamic-programming · combinatorics

Medium masalalar 1

Hard masalalar 1

Menyu

Ko‘rinish

Klaviatura yorliqlari

Ctrl K yoki /
Qidirish va buyruqlar
g h
Bosh sahifa
g p
Masalalar
g c
Musobaqalar
g r
Reyting
Ctrl Enter
Masala sahifasida — yechimni yuborish
?
Shu oyna