01背包裸题

Posted passion27

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01背包裸题相关的知识,希望对你有一定的参考价值。

#include"cstdio"
#include"cstring"
#include"algorithm"
using namespace std;
int N,W;
int w[105],p[105];
int dp[10005];
void DP()
{

for(int i=1; i<=N; i++)

        for(int c=W; c>=w[i]; c--)

               dp[c] = max(dp[c],dp[c-w[i]]+p[i]);
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--){
    memset(dp,0,sizeof(dp));
    scanf("%d%d",&N,&W);
    for(int i=1;i<=N;i++)
    {
        scanf("%d%d",&w[i],&p[i]);
    }
    DP();
    printf("%d\n",dp[W]);
    }
    return 0;
}

  

以上是关于01背包裸题的主要内容,如果未能解决你的问题,请参考以下文章

POJ 3624 Charm Bracelet(01背包裸题)

HDU 2602 Bone Collector(01背包裸题)

HRBUST 1993完全背包裸题

解题报告:hdu2191汶川地震 - 多重背包模板

[M背包] lc518. 零钱兑换 II(完全背包+背包求方案数)

P4377 [USACO18OPEN]Talent Show