题意:赤裸裸的0 1 背包。思路来源:背包九讲的第一讲。代码: #include <iostream> using namespace std; int dp[401000]; int w[3500]; int d[3500]; int n ,v; int max(int a,int b) { return a > b ? a : b; } void zeroonepace(int d,int w) { for(int i = v ; i>=w ; i--) dp[i] = max(dp[i],dp[i-w]+d); } int main() { scanf("%d%d",&n,&v); int i; for(i = 0 ; i < n ; i++ ) { scanf("%d%d",&d[i],&w[i]); dp[i] = 0; } for(i = 0 ; i < n ; i++) zeroonepace(w[i],d[i]); cout<<dp[v]<<endl; return 0; }