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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【背包】买装备

發(fā)布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【背包】买装备 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

買裝備

題目大意:

有n件物品,每件物品有它的物抗,魔抗,價格,現(xiàn)在要在物抗魔抗各不小于一個值的前提下,使價格最小(每件物品只能買一件)

原題:

題目描述

mxy 沉迷于一個辣雞游戲不可自拔。
為了加強(qiáng)角色的實力,mxy 決定重新買一套裝備。已知現(xiàn)在有 n 件裝備,每件裝備會
?供一定的物理抗性和魔法抗性,并需要一定的價錢。mxy 想要保證至少有 a 的物抗和 b
的魔抗,請你計算出滿足條件所需的最少金額。(裝備不可重復(fù)購買)

輸入

第一行兩個整數(shù) a,b 表示最少需要的物抗和魔抗。(1≤a≤21,1≤b≤79)
第二行為整數(shù) n (1≤n≤21)表示裝備的個數(shù)。
此后的 n 行,每行包括 ai,bi,mi(1≤ai≤21,1≤bi≤79,1≤mi≤800)3 整數(shù),這
些各自是:第 i 件裝備的物抗、魔抗和價錢

輸出

一行一個整數(shù),表示滿足條件的最小金額

輸入樣例

5 60 5 3 36 120 10 25 129 5 50 250 1 45 130 4 20 119

輸出樣例

249

說明

說明:選 1,2 或者 4,5 號裝備

解題思路:

就是一個二維01背包,但要注意它的物抗魔抗不一定是剛剛好的,有可能是多一點(diǎn)的

代碼:

#include<cstdio> #include<cstring> #include<iostream> using namespace std; int am,bm,n,v,aa,bb,f[105][105]; int main() {scanf("%d %d",&am,&bm);scanf("%d",&n);memset(f,0x7f,sizeof(f));for (int i=1;i<=n;++i){scanf("%d %d %d",&aa,&bb,&v);for (int j=am;j>aa;--j)for (int k=bm;k>bb;--k)f[j][k]=min(f[j][k],f[j-aa][k-bb]+v);//二維01背包for (int j=am;j>aa;--j)for (int k=bb;k>=0;--k)f[j][k]=min(f[j][k],f[j-aa][0]+v);//多出魔抗for (int j=aa;j>=0;--j)for (int k=bm;k>bb;--k)f[j][k]=min(f[j][k],f[0][k-bb]+v);//多出物抗for (int j=aa;j>=0;--j)for (int k=bb;k>=0;--k)f[j][k]=min(f[j][k],v);//都有多出的}printf("%d",f[am][bm]); }

總結(jié)

以上是生活随笔為你收集整理的【背包】买装备的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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