蓝桥杯 经典算法题 求解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;
}
相关推荐
学不会pwn不改名4 小时前
时间复杂度与空间复杂度详解
算法
RD_daoyi4 小时前
外贸独立站从0到1:平台选择 + 建站流程 + 新手避坑
大数据·服务器·网络·人工智能·搜索引擎·职场和发展
AbandonForce4 小时前
递归、搜索与回溯:从板书到二叉树解题方法
c++·算法·决策树
打工仔折腾 AI4 小时前
让时序预测真正参与决策:TimechoAI 工程化落地与管线设计实践
人工智能·后端·python·算法·机器学习·性能优化
Light605 小时前
企业自建 AI 智能体,成本差 8 倍还是 46 倍?
java·人工智能·算法·知识图谱·rag·ai agent 上下文·token 成本
曹牧5 小时前
VS: Visual Studio 里把未包含的文件加进项目2
linux·运维·算法
考研保研资料分享5 小时前
2022投资学跨保中国农业大学公共管理:四校面试与海投复盘
面试·职场和发展
重生之小比特5 小时前
【算法拾光】滑动窗口|长度最小的子数组 + 无重复字符的最长子串
算法
weixin_307779135 小时前
C++代码实现MATLAB中的fitnlm函数功能
开发语言·c++·算法·matlab