采药问题

解题思路
01背包模板题。
code
#include<iostream>
#include<cstdio>
using namespace std;
int t,n;
int f[110][1010];
int w[110],v[110];
int main()
{
cin>>t>>n;
for(int i=1;i<=n;i++)
scanf("%d%d",&w[i],&v[i]);
for(int i=1;i<=n;i++)
for(int j=1;j<=t;j++)
if(j<w[i])
f[i][j]=f[i-1][j];
else
f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+v[i]);
cout<<f[n][t]<<endl;
}

本文讲解了如何使用01背包模板解决实际的采药问题,通过C++代码展示了如何动态规划求解背包中物品最大价值。读者可以借此理解背包问题的基本思路和编程技巧。
239

被折叠的 条评论
为什么被折叠?



