01背包,是一个非常基础的东西
在此列出三种基本操作
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int f[10000][10000]; 5 int v[100000]; 6 int t[100000]; 7 int n; 8 int T; 9 int main(){ 10 cin>>T>>n; 11 for(int i=1;i<=n;++i) 12 scanf("%d%d",&t[i],&v[i]); 13 for(int i=1;i<=n;++i) 14 for(int j=T;j>=0;--j){ 15 if(j>=t[i]) 16 f[i][j]=max(f[i-1][j-t[i]]+v[i],f[i-1][j]); 17 else 18 f[i][j]=f[i-1][j]; 19 } 20 cout<<f[n][T]; 21 return 0; 22 } 23