传送
它不是可爱的01背包了!!!这个题中一种药可以采无限次!!!
它进化成了完全背包。完全背包中的内循环从m到v[i]改成了从v[i]到m
既然如此,代码如下:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int c,t,m,v[
1000001],w[
1000001],f[
500000];//f数组最好开大点
int main()
{cin>>t>>
m;
for(
int i=
1;i<=m;i++
)
{cin>>v[i]>>
w[i];
}
//f[1][v[1]]=v[1]*w[1];
for(
int i=
1;i<=m;i++
)
{
for(
int j=v[i];j<=t;j++
)
{f[j]=max(f[j],f[j-v[i]]+
w[i]);}
}
cout<<
f[t];
return 0;
}
其余完全背包:P2722总分
转载于:https://www.cnblogs.com/lcez56jsy/p/10506914.html
相关资源:数据结构—成绩单生成器