题目链接: 点我跳转
题目大意: emmmm就是个双重背包
题目分析: 只要在01背包的基础上稍加修改就OK了
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int dp[205][205];
int main(){
int n,m,t;
cin>>n>>m>>t;
for(int x,y,i=0;i<n;i++){
cin>>x>>y;
for(int j=m;j>=x;j--)
for(int k=t;k>=y;k--)//就是这里,多一层循环就OK了
dp[j][k] = max(dp[j][k],dp[j-x][k-y]+1);
}
cout<<dp[m][t];
return 0;
}