蓝桥杯 经典算法题 求解01背包问题

题目:

题解:

本题是非常经典的dp问题,但是如果你是dp入门者dp小白我不建议直接一上来就学习01背包问题,我的建议是先学习leetcode动态规划(基础版)从头开始慢慢领悟这个路线更适合理解动态规划的本质。

小局部最优的策略是:选不选最后一个物品?使小局部的价值最大。

dpij代表选了i种物品重量为j的状态。

cpp 复制代码
#include <iostream>
using namespace std;
int main(){
  int w[1005]={0},v[1005]={0};
  int total,N;
  cin>>total>>N;
  for(int i=1;i<=N;i++)cin>>w[i]>>v[i];
  int dp[1005][1005]={0};
  for(int i=1;i<=N;i++){
    for(int j=1;j<=total;j++){
      dp[i][j]=dp[i-1][j];
      if(j>=w[i])dp[i][j]=max(dp[i][j],dp[i-1][j-w[i]]+v[i]);
    }
  }
  cout<<dp[N][total];
  return 0;
}
相关推荐
码爸6 小时前
线性回归算法
算法·机器学习·线性回归
Coder-magician6 小时前
《代码随想录》刷题打卡day51:图论-part09(dijistra堆优化,Bellman_ford算法)
算法·图论
Nil2086 小时前
leetcode 763划分字母区间
算法·leetcode·职场和发展
不会就选b6 小时前
算法日常・每日刷题--<动态规划>20
算法·leetcode·动态规划
青少儿编程课堂7 小时前
迪杰斯特拉(Dijkstra)算法:单源最短路与赛场路线规划
c++·python·算法·bfs·信息学竞赛
不会就选b8 小时前
算法日常・每日刷题--<动态规划>19
算法·leetcode·职场和发展
考研保研资料分享8 小时前
新闻传播保研经验:中传预推免面试、广告学代表作与实习准备(2025)
面试·职场和发展
没有钱的钱仔9 小时前
协方差矩阵含义
算法·机器学习·矩阵
垆边人似月.9 小时前
华为机试题 :和为 K 的子数组个数
算法·leetcode·华为