宠物小精灵之收服 (二维01背包)

Posted willendless

tags:

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

【题目链接】

    http://noi.openjudge.cn/ch0206/4978/

【算法】

    做的第一道二维的背包问题,只需开的数组增加一维以正确表述每一个状态即可。本质还是多过程决策+最优子结构+无后效性。

【代码】

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int n,m,k,i,j,t,minm;
 4 int v[1010],u[510],dp[1010][510];
 5 int main()
 6 {
 7     scanf("%d%d%d",&n,&m,&k);
 8     minm=m;
 9     for(i=1;i<=k;i++) scanf("%d%d",&v[i],&u[i]);
10     for(i=1;i<=k;i++)
11         for(j=n;j>=v[i];j--)
12             for(t=m;t>=u[i];t--)
13                 dp[j][t]=max(dp[j][t],dp[j-v[i]][t-u[i]]+1);
14     for(i=0;i<=n;i++)
15         for(j=0;j<=m;j++)
16             if(dp[i][j]==dp[n][m]&&j<minm) minm=j;
17     printf("%d %d
",dp[n][m],m-minm);
18     return 0;
19 }

 

以上是关于宠物小精灵之收服 (二维01背包)的主要内容,如果未能解决你的问题,请参考以下文章

动规(10)-宠物小精灵之收服(背包)

动规(10)-宠物小精灵之收服(背包)

动规(10)-宠物小精灵之收服(背包)

4978:宠物小精灵之收服

noi 2.6_4978宠物小精灵之收服(DP)

AcWing 1022. 宠物小精灵之收服