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

建设网站请示宣传哪有免费的网站

建设网站请示宣传,哪有免费的网站,设计制作商城网站,温州网站关键词排名优化一.前言若你想学习或正在学习动态规划,背包问题一定是你需要了解的一种题型,并且大多数人最初都是从背包问题入坑进而打开动态规划这一大门。背包问题分为多种,你可以先掌握最常见的主要是三类:01背包、完全背包、多重背包二.分析…

一.前言

若你想学习或正在学习动态规划,背包问题一定是你需要了解的一种题型,并且大多数人最初都是从背包问题入坑进而打开动态规划这一大门。背包问题分为多种,你可以先掌握最常见的主要是三类:01背包、完全背包、多重背包

二.分析背包问题

1)01背包

在考虑一个物品时(从目标容器到物品大小容器考虑(保证只放一次)),放入当前物品后,所剩空间只能考虑其他物品

★状态:考虑了前i个物品,大小为j的容器能放入的最大价值的商品

转移方程:f[i][j]=max(f[i-1][j],f[i-1][j-V[i]])+W[i])

转移方程:dp[j]=max(dp[j-V[i]],dp[j]])(注:等号右边的dp为上个循环的结果,即考虑当前物品前面的所有物品的结果)

2)多重背包

在考虑一个物品时,将放不同个数看成不同物品,即可转化为01背包问题

3)完全背包

在考虑一个物品时(从物品大小容器到目标容器考虑(保证应放尽放)),放入当前物品后所剩空间只能考虑其他物品

三.例题

1)题目

01背包
n 件物品和一个容量是 v 的背包。每件物品只能使用一次。
i 件物品的体积是 vi,价值是 wi
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。
输出最大价值。

代码

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1010;
int v[N]; //每个物品的体积
int w[N]; //每个物品的价值
int f[N][N]; //状态转移方程,上面有详细解释
int main(){int n,m;scanf("%d%d",&n,&m); //输入物品数量和背包容量for(int i = 1;i <= n;i ++) scanf("%d%d",&v[i],&w[i]); //输入每个物体的体积和价值for(int i = 1;i <= n;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]); //已经把f[i][j]赋值为f[i - 1][j]了,现在就可以直接用f[i][j]了}}printf("%d",f[n][m]);return 0;
}

2)题目

n种物品和一个容量是v的背包,每种物品都有无限件可用。
i 种物品的体积是 vi,价值是 wi
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。
输出最大价值。

代码

#include <iostream>using namespace std;const int N = 1100;
int n, m;
int v[N], w[N];
int f[N][N];int main() {int n, m;cin >> n >> m;for (int i = 1; i <= n; i ++ ) cin >> v[i] >> w[i];for (int i = 1; i <= n; i ++ ) {for (int j = 1; j <= m; j ++ ) {f[i][j] = f[i - 1][j];for (int k = 1; k <= j / v[i]; k ++ ) {f[i][j] = max(f[i][j], f[i - 1][j - k * v[i]] + k * w[i]);}}}cout << f[n][m] << endl;return 0;
}

3)题目

n 种物品和一个容量是 v 的背包。
i 种物品最多有 si 件,每件体积是 vi,价值是 wi
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。

代码

#include <iostream>
#include <algorithm>using namespace std;
const int N = 110;int v[N], w[N], s[N];
int f[N][N];
int n, m;int main(){cin >> n >> m;for(int i = 1; i <= n; i ++) cin >> v[i] >> w[i] >> s[i];for(int i = 1; i <= n; i ++){//枚举背包for(int j = 1; j <= m; j ++){//枚举体积for(int k = 0; k <= s[i]; k ++){if(j >=  k * v[i]){f[i][j] = max(f[i][j], f[i - 1][j - k * v[i]] + k * w[i]);}}}}cout << f[n][m] << endl;return 0;
}

~感谢观看❥(^_-)

http://www.dt0577.cn/news/45078.html

相关文章:

  • 精美网站界面b站推出的短视频app哪个好
  • 专业模板网站制作哪家好软文营销的作用
  • 一级做爰片c视频网站360搜索引擎入口
  • 动态网站开发的论文哪个平台可以随便发广告
  • 商用高端网站设计新感觉建站中国北京出啥大事了
  • 山西疫情最新消息今天封城了seo搜索引擎优化怎么优化
  • 建设网站需要的关键技术独立站怎么搭建
  • 网站制作 福宁网络有限公司公司产品营销广告宣传
  • 网站建设中正在为您转最新网络营销方式
  • 织梦商业网站内容管理系统网上开店如何推广自己的网店
  • 建设高流量网站媒体平台推广
  • 做网站 提要求南宁seo内部优化
  • 做简历好的网站优化seo教程技术
  • 一键生成房屋设计图google seo怎么做
  • php动态网站开发对网站和网页的认识
  • 长沙网站优化联系方式百度信息流投放在哪些平台
  • 西安网络运营公司有哪些seo论坛站长交流
  • wordpress浮动窗插件杭州seo网站
  • 青海省网站建设平台推广网络广告
  • 网站开发交易网站推广的基本方法为
  • 网站建设文字表达怎么找百度客服
  • 做微商推广有哪些好的分类信息网站谷歌浏览器下载手机版app
  • 安徽网站设计与优化今日十大热点新闻头条
  • 东方热线宁波论坛潍坊百度快速排名优化
  • qq旧版本大全官方下载河南百度关键词优化排名软件
  • 企业网站建设市场前景美国疫情最新消息
  • 自己学做网站看什么书icp备案查询
  • 网站制作怎么做网站优化排名想要网站导航推广
  • 做网站难度大吗自己的网站怎么推广
  • 做公众号的网站上海今天刚刚发生的新闻