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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

HU 3496 Watch The Movie---二维费用

發(fā)布時(shí)間:2025/3/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HU 3496 Watch The Movie---二维费用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊打開鏈接

這題是一道二維費(fèi)用背包問(wèn)題,剛開始的時(shí)候我把所有的都初始化為-1,只有ans[0][0]=0,這樣是不對(duì)的,為什么呢。。。

如果要恰好用完的話,是要將別的都初始化為-1。但是這個(gè)恰好是指的物品的件數(shù)恰好,

那么就是說(shuō)二維的費(fèi)用中有一個(gè)費(fèi)用是恰好,所以初始化-1的時(shí)候只要是對(duì)有這個(gè)要求的這一維進(jìn)行初始化就可以了。

#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int dp[1100][1100],n, m, L, v[110], t[110]; int main() {int T;scanf("%d", &T);while(T--){scanf("%d%d%d", &n, &m, &L);for(int i =0; i<n; i++){scanf("%d%d", &t[i], &v[i]);}memset(dp, -1, sizeof(dp));for(int j =0 ; j<=L; j++)dp[0][j]=0;//for(int i =0; i<1100; i++)//for(int j =0; j<1100; j++)//dp[i][j]=-1e9;for(int i =0; i<n; i++){for(int j =m; j>=1; j--)for(int p =L; p>=t[i]; p--){if(dp[j-1][p-t[i]]!=-1&&(dp[j-1][p-t[i]]+v[i])>dp[j][p])dp[j][p]=dp[j-1][p-t[i]]+v[i];}}if(dp[m][L]==-1)puts("0");elseprintf("%d\n", dp[m][L]);}return 0; }


這是不是不太理解,想一下完全背包要完全恰好要完全裝滿的話要保證dp【0】要是一零開始。

總結(jié)

以上是生活随笔為你收集整理的HU 3496 Watch The Movie---二维费用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。