日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU1300DP

發布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 <iostream> #include <algorithm> #include <stdio.h> #include <math.h> #include <map> #include <set> #include <vector> #include <string> #include <cstring> #include <sstream> using namespace std;#define input freopen("input.txt","r",stdin) #define output freopen("output.txt","w",stdout) #define For1(i,a,b) for (i=a;i<b;i++) #define For2(i,a,b) for (i=a;i<=b;i++) #define Dec(i,a,b) for (i=a;i>b;i--) #define Dec2(i,a,b) for (i=a;i>=b;i--) #define Sca_d(x) scanf("%d",&x) #define Sca_s(x) scanf("%s",x) #define Sca_c(x) scanf("%c",&x) #define Sca_f(x) scanf("%f",&x) #define Sca_lf(x) scanf("%lf",&x) #define Fill(x,a) memset(x,a,sizeof(x)) #define MAXN 1005 #define MAXINT 99999999int main() {//input;int i,j,n,k,t;int amount[MAXN],amount_tot[MAXN],price[MAXN];//注意:amount_tot[k]指的是從第1種到第k種珠寶一共同擁有多少個//也即前序和 __int64 dp[MAXN];cin>>t;while(t--){Fill(amount,0);Fill(amount_tot,0);Fill(price,0);Fill(dp,0);cin>>n;For2(i,1,n)Sca_d(amount[i]),amount_tot[i]=amount_tot[i-1]+amount[i],Sca_d(price[i]);dp[1]=(amount[1]+10)*price[1];For2(i,2,n){dp[i]=dp[i-1]+price[i]*(amount[i]+10);For2(j,1,i)dp[i]=min(dp[j-1]+(amount_tot[i]-amount_tot[j-1]+10)*price[i],dp[i]);}cout<<dp[n]<<endl;}return 0; }

版權聲明:本文博客原創文章,博客,未經同意,不得轉載。

總結

以上是生活随笔為你收集整理的HDU1300DP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。