uva 10003 切割木棍

2021-07-10 19:52:17 字數 656 閱讀 3523

【題意】給了一根長度為l的木棍,另外給了一些要切的點的座標,可以把這個木棍理解為橫座標軸,每個能切割的地方的都有固定的座標。現在要求你把這個木棍按照切割位置切割,每次切割消耗的能量就是當前木棍的長度。現在要你選擇如何切割,使得消耗最小。

【解題思路】區間dp.

【狀態表示】dp[i][j]表示從i到j這個區間的最小花費。

【狀態轉移】dp[i][j] = min(dp[i][j],dp[i][k]+dp[k][j]+num[j]-num[i]);

【ac**】

#include #include #include #include using namespace std;

const int maxn = 100;

int dp[maxn][maxn];

int num[maxn];

int main()

int i,j;

num[0]=0,num[n+1]=l;

memset(dp,0,sizeof(dp));

for(int p=1; p<=n+1; p++)

{for(i=0; i<=n+1; i++)

{j=i+p;

int minn=1000000007;

if(j>n+1)break;

for(int k=i+1; k

切木棍 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 i j 從i刀到j刀的最優切割順序 子問題 哪一刀最後切,dp i k dp k j i include includeusing namespace std define ma...

動態規劃練習 UVa10003 區間dp

紫書上的動態規劃例題,很明顯是乙個區間線性規劃的問題,想起之前做過的矩陣鏈乘,這題和它很像,列舉方向都是向j i遞增的 方向,這裡有個大神的區間dp模板的總結 可以強化理解。所以,設dp i j 為切割小木棍i j點的費用,則dp i j min,a j a i 表示第一刀切割為i j的費用,而 d...