題目鏈結。
題目大意:
給定乙個n,和兩個序列a[i], p[i]. a[i] 表示需要購買 i品質 的數量,p[i] i 等級的**。
1.每個品質都會有不同的**,**依據品質上公升而上公升
2.買一次 i 品質,都要加上10個 i 品質 **的手續費。
3.可一用高品質的代替低品質.
求最少的花費.
分析:這題就簡單地矩陣鏈乘法(《演算法導論》第15章,動態規劃)。
用 dp[i][j] 表示購買 i 品質到 j 的最少的花費.
dp[i][j] = min
dp[i][j] = p[j]*(s+10
);
//分解
for(int k=i; k<=j-1; k++) }}
printf(
"%d\n
", dp[0][n-1
]); }
return0;
}
poj1651 矩陣鏈乘
以矩陣鏈abcd為例 按照矩陣鏈長度遞增計算最優值 矩陣鏈長度為1時,分別計算出矩陣鏈a b c d的最優值 矩陣鏈長度為2時,分別計算出矩陣鏈ab bc cd的最優值 矩陣鏈長度為3時,分別計算出矩陣鏈abc bcd的最優值 矩陣鏈長度為4時,計算出矩陣鏈abcd的最優值 動歸方程 k為矩陣鏈斷開...
Poj1651 矩陣鏈乘
題目沒有以明顯得矩陣鏈乘的形式給出來,但是按照它的規則去做就發現是可以轉換成矩陣連乘的,注意些遞推程式的時候,長區間的值要依賴短區間的值,所以還要有區間長度的迴圈,並且每次進入新的長區間進行劃分之前,都要用短區間來更新長區間的初值 poj1651.cpp 定義控制台應用程式的入口點。include ...
poj 1179 矩陣鏈乘加括號
題意 多邊形遊戲,有n個頂點的多邊形,3 n 50 多邊形有n條邊,每個頂點中有乙個數字 可正可負 每條邊上或者是 號,或者是 號。邊從1到n編號,首先選擇一條邊移去,然後進行如下操作 1 選擇一條邊e和邊e連線著的兩個頂點v1,v2 2 用乙個新的頂點代替邊e和v1 v2,新頂點的值為v1 v2中...