15 101 2 3 4 55 4 3 2 1Example Output
14題意大概:第一行輸入測(cè)試數(shù)據(jù)的組數(shù)。 第二行輸入骨頭的個(gè)數(shù)和自己背包的體積。 第三行輸入每個(gè)骨頭的價(jià)值。 第四行輸入每個(gè)骨頭的體積。 輸出可以獲得的最大價(jià)值。此題為背包問(wèn)題中的一種,一個(gè)物品只能拿一次,求最大獲得價(jià)值。#include<stdio.h>#include<string.h>int df[1000];int max(int a,int b){ return (a>b?a:b);}int main(){ int t,i,j,n,v; int p[1000],w[1000]; scanf("%d",&t); while(t--) { memset(df,0,sizeof(df)); scanf("%d%d",&n,&v); for(i=0;i<n;i++) { scanf("%d",&p[i]); } for(i=0;i<n;i++) { scanf("%d",&w[i]); } for(i=0;i<n;i++) { for(j=v;j>=w[i];j--) { df[j]=max(df[j-w[i]]+p[i],df[j]); } } printf("%d/n",df[v]); } return 0;}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注