HDU1300DP
/*
HDU1300 DP
給定n種珠寶
每種珠寶兩個數據,amount[i]代表數量,price[i]代表單價
購買珠寶時要滿足以下購買規則:
單獨買:每種珠寶要加上數量10
合並買:可以把連續幾種珠寶數量合並,再加上10,單價按照price最大的計算
求出購買所有的珠寶最少要花費多少
思路:
初始化:第一種珠寶
只需要管當前第i種珠寶的購買
購買方法一:前i-1種按照前面的最優值購買(無後效性),第i種單獨買
則: dp[i]=dp[i-1]+price[i]*(amount[i]+10);
購買方法二:從第j種到第i種數量合並購買,其中j從1取到i
則: dp[i]=dp[j-1]+(amount_tot[i]-amount_tot[j-1]+10)*price[i];
結果:dp[n]
*/
#include
#include
#include
#include
#include