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

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

生活随笔

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

编程问答

SDUT OJ[3109] 买买买 背包 dp

發(fā)布時(shí)間:2025/5/22 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SDUT OJ[3109] 买买买 背包 dp 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

好久沒(méi)做題了,今天來(lái)一發(fā)。


根據(jù)題意,可以推出狀態(tài)轉(zhuǎn)移方程:

dp[cost][weight] = max(dp[cost][weight], dp[cost-s[i].cost][weight-s[i].weight] + s[i].profit)

cost與weight可以互換


畢竟基礎(chǔ)差,看了許久,又在舍友的講解下才明白思路(o′?ェ?`o)


后來(lái)還因?yàn)閭€(gè)人細(xì)節(jié)沒(méi)注意到,WA了一次......


加注釋后的代碼如下(嘗試著優(yōu)化,結(jié)果效果相差不大 ?(。??)ノ ?書(shū)看得少),題目在文章后面給出


#include<iostream> // Required for max #include<cstring> // Required for memset #include<cstdio> // Required fro scanf,printf #define MAX 101 // 題目中最大數(shù)為100,所以數(shù)組下界為101// 存儲(chǔ)貨物的重量、進(jìn)價(jià)、盈利 struct {int weight, cost, profit; }s[MAX];// dp數(shù)組 int dp[MAX][MAX];int main() {int n, m, k;while(scanf("%d%d%d",&n,&m,&k) != EOF){// 對(duì)輸入的數(shù)據(jù)處理后存在結(jié)構(gòu)體中for(int z=0; z<k; z++){int w, u, v;scanf("%d%d%d",&w,&u,&v);s[z].weight = w;s[z].cost = u;s[z].profit = v-u;}// 初始化dp數(shù)組memset(dp, 0, sizeof(dp));// 狀態(tài)轉(zhuǎn)移方程 dp[cost][weight] = max(dp[cost][weight], dp[cost-s[i].cost][weight-s[i].weight] + s[i].profit)for(int cost=0; cost<=m; cost++)for(int weight=0; weight<=n; weight++){for(int i=0; i<k; i++){if(cost-s[i].cost>=0 && weight-s[i].weight>=0)dp[cost][weight] = std::max(dp[cost][weight], dp[cost-s[i].cost][weight-s[i].weight] + s[i].profit);}}printf("%d\n", dp[m][n]);}return 0; }

買買買

Time Limit: 1000ms?? Memory limit: 65536K??有疑問(wèn)?點(diǎn)這里^_^

題目描述

我飛最近開(kāi)始跑商了,比如從淄博往黃島販燒餅,從黃島往淄博販魷魚(yú)干。 當(dāng)然我飛壕還會(huì)販別的。 現(xiàn)在已知黃島有K種商品,每種商品重量為W,在黃島買價(jià)為U,在淄博賣價(jià)為V。 由于我飛經(jīng)常鍛煉身體強(qiáng)壯,每次都能扛總重量不超過(guò)N的貨物,現(xiàn)在我飛身上有錢M,請(qǐng)你幫我飛計(jì)算一下他這一次從黃島到淄博最多能賺多少錢,假設(shè)每種商品都有無(wú)窮多。所有的商品不可被分割,即若購(gòu)買必須購(gòu)買整件商品。

輸入

多組數(shù)據(jù)。 對(duì)于每組數(shù)據(jù)的第一行有三個(gè)整數(shù)N,M,K(1 <= N,M,K <= 100)。 接下來(lái)的K行,每行三個(gè)整數(shù)W,U,V(1 <= W,U,V <= 100)。

輸出

對(duì)于每組數(shù)據(jù)輸出一個(gè)整數(shù)代表我飛的最大收益。

示例輸入

1 1 1 1 1 1

示例輸出

0

提示

來(lái)源

zmx

轉(zhuǎn)載于:https://www.cnblogs.com/Genesis2018/p/9079828.html

總結(jié)

以上是生活随笔為你收集整理的SDUT OJ[3109] 买买买 背包 dp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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