POJ - 3624 01背包

xiaoxiao2021-02-28  86

典型的01背包

#include<iostream> #include<algorithm> #include<string> #include<cstring> #include<map> #include<queue> #include<cmath> #include<stack> #include<vector> #include<cstdio> #define MAXN 33000 #define INF 0x3f3f3f3f #define lmid l,m,rt<<1 #define rmid m+1,r,rt<<1|1 #define ls rt<<1 #define rs rt<<1|1 #define Mod 1000000007 #define i64 __int64 using namespace std; int x[3500],y[3505]; int dp[13000]; int main() { int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d %d",&x[i],&y[i]); for(int i=0;i<n;i++) for(int j=m;j>=x[i];j--) { dp[j]=max(dp[j],dp[j-x[i]]+y[i]); } cout<<dp[m]<<endl; return 0; }

转载请注明原文地址: https://www.6miu.com/read-53754.html

最新回复(0)