My first Magazine pemrograman-kompetitif-dasar | Page 86

7 Dynamic Programming 7.2.4 Memotong Kayu Contoh Soal 7.5: Memotong kayu (Diadopsi dari UVa 10003 - Cutting Sticks 11 ) Kita akan memotong sebuah batang kayu dengan panjang M meter pada N titik menjadi N + 1 bagian. Titik ke-i berada di L i meter dari ujung kiri, dengan 1 ≤ i ≤ N. Untuk memotong sebatang kayu menjadi dua, kita memerlukan usaha sebesar panjang kayu yang sedang kita potong. Cari urutan pemotongan sedemikian sehingga total usaha yang dibutuhkan minimum! Contoh Contoh, terdapat sebuah kayu dengan panjang 10 meter dan terdapat 3 titik potongan pada 2 meter, 4 meter, dan 7 meter dari ujung kiri. 4 2 7 Gambar 7.2: Ilustrasi pemotongan kayu. Kita bisa memotong pada titik 2, titik 4, lalu titik 7 dan memerlukan usaha 10 + 8 + 6 = 24. 2 4 7 +10 +8 +6 Gambar 7.3: Langkah pemotongan kayu. Cara lain adalah memotong pada titik 4, titik 2, lalu titik 7 dan memerlukan usaha 10 + 4 + 6 = 20. 2 4 7 +10 +4 +6 Gambar 7.4: Langkah pemotongan kayu yang lebih optimal. 76