我有问题
[C] 纯文本查看 复制代码 void caiyao()//采药问题 数量有限
{
int t,m;//总时间,草药数量
int w[100],v[100];//草药耗时,草药价值
int s[1000]={0};//最高价值
cin>>t>>m;
for(int i=1;i<=m;i++) cin>>w[i]>>v[i];
for(int i=1;i<=m;i++)//草药
{
for(int j=t;j>=0;j--)//时间 由高位开始比较,不会覆盖低位最优子结构的结果
{
if(w[i]<=j)
s[j]=max(s[j],s[j-w[i]]+v[i]);//一维数组不需要else,初值还在
}
}
cout<<s[t];
}
|