思路:這題跟矩陣鏈乘的思路一樣,所以還是很好考慮的,只是有一點需要加兩個切割點;
**如下:
/*
求最優的切割順序
最優子結構:dp[i][j]從i刀到j刀的最優切割順序
子問題:哪一刀最後切,dp[i][k]+dp[k][j]|i#include#includeusing namespace std;
#define maxn 55
#define inf 1000000
int dp[maxn][maxn];
int num[maxn];
int main()
num[0] = 0;//沒有很想明白為什麼要加這兩刀
num[n+1] = l;
for (int i = 2; i < n+2; i++)//區間長度
}} /*for (int i = 1; i <= n ; i++)
printf("\n");
}*/printf("the minimum cutting is %d.\n", dp[0][n+1]);
} return 0;
}
uva 10003 切割木棍
題意 給了一根長度為l的木棍,另外給了一些要切的點的座標,可以把這個木棍理解為橫座標軸,每個能切割的地方的都有固定的座標。現在要求你把這個木棍按照切割位置切割,每次切割消耗的能量就是當前木棍的長度。現在要你選擇如何切割,使得消耗最小。解題思路 區間dp.狀態表示 dp i j 表示從i到j這個區間的...
切木棍 UVA 10003 區間DP
題目大意 有一根長為n的木棍,截一次木棍的代價為這個木棍的長度,現在知道要在這個木棍的 切割,問你最小的代價是多少 解題思路 寫的時候沒有看出來是個區間dp dp i j 代表的是在第i個切割點和第j個切割點之間切割的最小代價 那麼 dp i j min minn,dp i k dp j r a j...
動態規劃練習 UVa10003 區間dp
紫書上的動態規劃例題,很明顯是乙個區間線性規劃的問題,想起之前做過的矩陣鏈乘,這題和它很像,列舉方向都是向j i遞增的 方向,這裡有個大神的區間dp模板的總結 可以強化理解。所以,設dp i j 為切割小木棍i j點的費用,則dp i j min,a j a i 表示第一刀切割為i j的費用,而 d...