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

题目:

题解:

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

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

dp[i][j]代表选了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;
}
相关推荐
lihihi8 小时前
P1209 [USACO1.3] 修理牛棚 Barn Repair
算法
weixin_387534228 小时前
Ownership - Rust Hardcore Head to Toe
开发语言·后端·算法·rust
庞轩px9 小时前
MinorGC的完整流程与复制算法深度解析
java·jvm·算法·性能优化
Queenie_Charlie9 小时前
Manacher算法
c++·算法·manacher
闻缺陷则喜何志丹9 小时前
【树的直径 离散化】 P7807 魔力滋生|普及+
c++·算法·洛谷·离散化·树的直径
AI_Ming9 小时前
Seq2Seq-大模型知识点(程序员转行AI大模型学习)
算法·ai编程
若水不如远方9 小时前
分布式一致性(六):拥抱可用性 —— 最终一致性与 Gossip 协议
分布式·后端·算法
计算机安禾9 小时前
【C语言程序设计】第35篇:文件的打开、关闭与读写操作
c语言·开发语言·c++·vscode·算法·visual studio code·visual studio
Wect9 小时前
React Hooks 核心原理
前端·算法·typescript
美式请加冰9 小时前
字符串的介绍和使用
算法