Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 01 knapsack
- int solve(vector<int> value , vector<int> wt , int knapsack){
- int n = value.size();
- vector<vector<int>> dp (n+1 ,vecotr<int>(knapsack+1,0));
- // a represents the ath element .. b represents the knapsack present
- for(int a=1;a<=n;a++){
- for(int b=1;b<=knapsack;b++){
- if(wt[a-1]<=b){
- dp[a][b] = max(value[a-1]+dp[a-1][b-wt[a-1]] , dp[a-1][b]); //either i choose the ath element or not
- }else{
- dp[a][b] = dp[a-1][b]; // cant choose the ath element becuase its weight is more
- }
- }
- }
- return dp[n][knapsack];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement