当前位置: 首页 > news >正文

动态规划入门:背包问题求具体方案(以0-1背包问题为例)

 本质:有向图最短(长)路问题

 字典序最小方案?--贪心思路?(本题未使用)

分析第一个物品:

写代码时tip:要考虑“边读边做”还是“先读后做”

#include<iostream>
#include<algorithm>
using namespace std;const int N=1010;
int f[N][N];
int v[N],w[N];int n,m;
int main()
{cin>>n>>m;//本题算法在流程上考虑先读后做而不是边读边做,边度边做流程参考分组背包问题for(int i=1;i<=n;i++)cin>>v[i]>>w[i];//i从拓扑排序的尾枚举起for (int i = n; i >= 1; i--){for (int j = 0; j <= m; j++){f[i][j] = f[i + 1][j];if (j >= v[i]) f[i][j] = max(f[i][j], f[i + 1][j - v[i]] + w[i]);}}int j = m;for (int i = 1; i <= n; i++) {if (j >= v[i] && f[i][j] == f[i + 1][j - v[i]] + w[i]) {cout << i << " ";j -= v[i];}}return 0;
}

相关文章:

  • 免费图片软件,可矫正倾斜、调整去底效果
  • 【二叉树专题】一道深入浅出的 DFS 题:求二叉树的直径(含通俗易懂讲解)
  • 精准分割 - 深入解析 Kubernetes 中的 NVIDIA Multi-Instance GPU (MIG)
  • JavaScript 笔记 --- part 4 --- Web API (part 2)
  • 自定义请求头导致跨域的解决办法
  • AI日报 - 2025年04月20日
  • 每天学一个 Linux 命令(26):less
  • 从入门到精通汇编语言 第五章(流程转移与子程序)
  • 源道-做股票应该从传统的技术图形转向行业规律思考
  • C++(23)—模板初阶
  • java面试篇(常见的集合底层原理)
  • AI大模型之模型幻觉
  • Redis——通信协议
  • 【大模型】单选数据集制作举例
  • Java技术栈 —— 网络带宽受限,图片预览加速
  • 5.4.1 Password控件的Password属性绑定问题
  • 06 GE Modifier
  • 【AI论文】对人工智能生成文本的稳健和细粒度检测
  • 性价比超高的 英伟达Tesla T4卡 如何解决散热问题?
  • Ubuntu 22.04 更换 Nvidia 显卡后启动无法进入桌面问题的解决
  • 成都市政府秘书长王忠诚调任遂宁市委副书记
  • 两岸基层民生发展交流会在浙江开幕
  • 我国成功发射试验二十七号卫星01星~06星
  • 经济日报:从三个变化看外贸破局之道
  • 市场监管总局:在全国集中开展食用植物油突出问题排查整治
  • 自然资源部一季度新批用海项目中,涉历史遗留围填海项目56个