题解:简单的二维费用背包
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 6 using namespace std; 7 8 int dp[205][205],w[205],t[205]; 9 int n,tmax,vmax; 10 11 int main() 12 { 13 scanf("%d%d%d",&n,&vmax,&tmax); 14 for(int i=1;i<=n;i++) 15 scanf("%d%d",&w[i],&t[i]); 16 for(int i=1;i<=n;i++) 17 for(int v=vmax;v>=w[i];v--) 18 for(int j=tmax;j>=t[i];j--) 19 dp[v][j]=max(dp[v][j],dp[v-w[i]][j-t[i]]+1); 20 printf("%d\n",dp[vmax][tmax]); 21 return 0; 22 }