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

各类背包问题

1、0-1背包问题

(1)用二维数组动态规划

#include<bits/stdc++.h>
using namespace std;
int m,n;
int w[50],c[50];
int dp[210][210];
int main()
{cin>>m>>n;for(int i=1;i<=n;i++){cin>>w[i]>>c[i];}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){if(w[i]<=j) dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+c[i]);else dp[i][j]=dp[i-1][j];}cout<<dp[n][m];return 0;
}

(2)一维数组解法

#include <bits/stdc++.h>
using namespace std;int m,n;
int w[100],v[100];
int dp[200];
int main()
{cin>>m>>n;for(int i=1; i<=n; i++){cin>>w[i]>>v[i];}for(int i=1; i<=n; i++){//01背包用一维数组,要从数组右边开始循环for(int j=m; j>=1; j--){if(j>=w[i]){dp[j]=max(dp[j],dp[j-w[i]]+v[i]);}}}cout<<dp[m];
}

2、完全背包问题

(1)二维数组解法

#include <bits/stdc++.h>
using namespace std;
int m,n;
int w[210],c[210];
int f[210][210];
int main()
{cin>>m>>n;for(int i=1;i<=n;i++)cin>>w[i]>>c[i];for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(w[i]>j) f[i][j]=f[i-1][j];else{f[i][j]=max(f[i-1][j],f[i][j-w[i]]+c[i]);}}}cout<<"max="<<f[n][m]<<endl;return 0;
}

(2)一维数组解法

完全背包用一维数组,要从数组左边开始循环

#include <bits/stdc++.h>
using namespace std;int m,n;
int w[100],v[100];
int dp[200];
int main()
{cin>>m>>n;for(int i=1; i<=n; i++){cin>>w[i]>>v[i];}for(int i=1; i<=n; i++){//完全背包用一维数组,要从数组左边开始循环for(int j=1; j<=m; j++){if(j>=w[i]){dp[j]=max(dp[j],dp[j-w[i]]+v[i]);}}}cout<<"max="<<dp[m];
}

http://www.lryc.cn/news/119530.html

相关文章:

  • 《练习100》91~95
  • 3.6 Spring MVC文件上传
  • # X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系
  • rknn3588如何查看npu使用情况
  • “Can‘t open perl script configure : No such file or directory”的解决办法
  • ChatGLM2-6B在windows下的部署
  • nodejs+vue+elementui学生档案信息管理系统_06bg9
  • Nginx location
  • 数据库字段命名导致的SQL报错
  • 【办公自动化】使用Python一键提取PDF中的表格到Excel
  • 【基础类】—原型链系统性知识
  • ddia(3)----Chapter3. Storage and Retrieval
  • SpringBoot自定义拦截器interceptor使用详解
  • AI抠图使用指南:Stable Diffusion WebUI Rembg实用技巧
  • gitlab-Runner搭建
  • 【ChatGPT 指令大全】销售怎么借力ChatGPT提高效率
  • 计算机网络 网络层 路由 路由信息协议RIP
  • 【Spring】-Spring项目的创建
  • SQL | 使用通配符进行过滤
  • make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1
  • Android Studio实现简单ListView
  • 【设计模式】模板模式
  • 配置docker和复现
  • Qt应用开发(基础篇)——工具箱 QToolBox
  • 地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算
  • 【UE4 RTS】08-Setting up Game Clock
  • 百度chatgpt内测版
  • [GAN] 使用GAN网络进行图片生成的“调参人”入门指南——生成向日葵图片
  • (十)人工智能应用--深度学习原理与实战--模型的保存与加载使用
  • Java“牵手”1688商品详情页面数据获取方法,1688API实现批量商品数据抓取示例