b belajar.myudak

Dynamic programming untuk koin minimum

Definisikan state dan isi tabel dari submasalah terkecil.

dasar #dynamic programming

Yang akan kamu pahami

Bangun recurrence dari pilihan terakhir dan urutan evaluasi yang aman.

Konsep inti

dp[x] adalah jumlah koin minimum untuk membentuk x. Set dp[0]=0. Untuk setiap koin positif c yang tidak melebihi x, pertimbangkan 1 + dp[x−c] bila terjangkau. Isi x dari kecil ke besar.

Coba langkahnya

Koin tak terbatas bernilai 1, 3, 4. Bentuk nilai 6.

Tabel minimum koin dan kandidat untuk x = 6
0123456
dp[x]012112·
Koin terakhir·······
1 + dp[x−c]·······
1/3Basis. Nol butuh nol koin. Tiga dan empat masing-masing butuh satu.dp[0]=0 · dp[3]=1 · dp[4]=1

Cek pemahaman

Cek pemahaman
  1. Kenapa dp[x−c] sudah tersedia saat mengisi dp[x]?