設有n種物品,每種物品有乙個重量及乙個價值。但每種物品的數量是無限的,同時有乙個揹包,最大載重量為m,今從n種物品中選取若干件(同一種物品可以多次選取),使其重量的和小於等於m,而價值的和為最大。
第一行:兩個整數,m(揹包容量,m<=200)和n(物品數量,n<=30);
第2..n+1行:每行二個整數wi,ui,表示每個物品的重量和價值。
僅一行,max=乙個數,表示最大總價值。
10 4
2 13 3
4 57 9
max=12
cjoj:
動態規劃
a設f[i][j]表示前i件物品重量為j時的最大價值,所以有
f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i])
#include#include#include#include#include#includeusing namespace std;
const int maxn=1000;
const int maxm=300;
const int inf=2147483647;
class item
;int n,m;
vectori;
int f[maxn][maxm]=;
int main()
); for (int i=1;i<=n;i++)
); }
int ans=0;
for (int i=1;i=0)
f[i][j]=max(f[i-1][j],f[i-1][j-i[i].weight]+i[i].value);
else
f[i][j]=f[i-1][j];
ans=max(ans,f[i][j]);
//cout<} //cout<} cout<<"max="
}
完全揹包變式 一本通 1293 買書
1293 買書 題目描述 小明手裡有n元錢全部用來買書,書的 為10元,20元,50元,100元。問小明有多少種買書方案?每種書可購買多本 輸入 乙個整數 n,代表總共錢數。0 n 1000 輸出 乙個整數,代表選擇方案種數。輸入樣例 20 輸出樣例 2 提示 樣例輸入 樣例輸入2 15樣例輸入3 ...
佇列(一本通)
這道題重點是關係的轉換和初始化 include include include includeusing namespace std int a 101 記錄接著的的那個節點 int n,m int main int ans void bfs int x,int y int main cout in...
情感修煉一本通
實踐準則 經驗親密關係構成要素 了解 關心 相互依賴性 相互一致性 信任以及承諾 親密的伴侶彼此間有著廣泛而私密的了解。他們熟知彼此的經歷 愛好 情感和心願,而且一般不會把這些資訊透露給其他人。親密的伴侶關心對方,彼此能從對方身上感受到更多的關愛。如果人們認為自己的伴侶了解 理解並欣賞自己,其親密程...