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

如何在腾讯云建设网站南昌百度推广联系方式

如何在腾讯云建设网站,南昌百度推广联系方式,个体工商户能网站备案吗,网站可以做系统吗在acwing.com中的题,本次为01背包问题【具体视频可通过www.acwing.com/video/214网站观看(ps:是跟着视频中的老师一起写的,并不是原创~~~)】 01背包问题题目: 有N件物品和一个容量是V的背包。每件物品只能使用一次。第…

在acwing.com中的题,本次为01背包问题【具体视频可通过www.acwing.com/video/214网站观看(ps:是跟着视频中的老师一起写的,并不是原创~~~)】

01背包问题题目:

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

输入格式:

        第一行两个整数,N,V,用空格隔开,分别标识物品数量和背包容积。接下来的N行,每行两个整数vi,wi,用空格隔开,分别标识第i间物品的体积和价值。

输出格式:

        输出一个整数,表示最大价值。

数据范围:

        0<N   V<=1000

        0<vi  wi<=1000

输入样式:

4 5

1 2

2 4

3 4

4 5

输出样式:

8

 

代码 

/*
二维动态规划:f[i][j]表示只看前面i个物品,总体积是j的情况下,总价值最大是多少
result = max(f[n][0~v]) f[i][j]:
1.不选第i个物品,f[i][j] = f[i-1][j]
2.选第i个物品,f[i][j] = f[i-1][j-v[i]]f[i][j] = max{1.2.}初始化:f[0][0] = 0 
时间复杂度:O(n*m) */
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;const int N = 1010;  // 定义常量N,表示物品的最大数量
int n, m;            // n表示物品的数量,m表示背包的容量
int f[N][N];         // f[i][j]表示前i个物品在背包容量为j时的最大价值
int v[N], w[N];      // v[i]表示第i个物品的体积,w[i]表示第i个物品的价值int main() {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 = 0; j <= m; j++) {  // 遍历背包的容量f[i][j] = f[i - 1][j];  // 不选择第i个物品时的最大价值if (j >= v[i])  // 如果当前背包容量j大于等于第i个物品的体积f[i][j] = max(f[i - 1][j], f[i - 1][j - v[i]] + w[i]);  // 选择第i个物品或不选择,取最大值}}int res = 0;// 遍历所有可能的背包容量,找到最大价值for (int i = 0; i <= m; i++)res = max(res, f[n][i]);cout << res << endl;  // 输出最大价值return 0;
}

代码运行状态: Finished   

输入

10 100
5 8
32 47
17 43
7 9
6 4
29 40
2 6
14 31
6 17
1 3


输出

184

标准答案

184

解题思路

  1. 状态定义

    • f[i][j] 表示前 i 个物品在背包容量为 j 时的最大价值。

  2. 状态转移方程

    • 对于每个物品 i,我们有两种选择:

      • 不选择第 i 个物品:此时的最大价值为 f[i-1][j]

      • 选择第 i 个物品:此时的最大价值为 f[i-1][j-v[i]] + w[i](前提是 j >= v[i])。

    • 因此,状态转移方程为:

      f[i][j]=max⁡(f[i−1][j],f[i−1][j−v[i]]+w[i])f[i][j]=max(f[i−1][j],f[i−1][j−v[i]]+w[i])
  3. 初始化

    • f[0][j] = 0,表示没有物品时,背包的最大价值为0。

    • f[i][0] = 0,表示背包容量为0时,最大价值为0。

  4. 最终结果

    • 最终的结果是 f[n][m],即前 n 个物品在背包容量为 m 时的最大价值。

http://www.dtcms.com/wzjs/297320.html

相关文章:

  • 珠海市斗门建设局网站云服务器免费
  • 无锡地区做网站新闻发布平台有哪些
  • 武汉一网网络技术有限公司电商网站seo
  • 互联网公司的最新排名百度seo软件
  • 广告模板图片seo平台优化
  • dw做网站地图宁波seo费用
  • html菜鸟教程代码郑州做网络优化的公司
  • 大连网站建设 领超最好网站建设策划书
  • 晋城网站建设长沙seo步骤
  • 合肥html5网站建设企业网站优化
  • 外贸网站推广 雅虎问答有用吗自己建网站要多少钱
  • 云南专业做网站多少钱网址模板建站
  • 网站建设结单 优帮云百度做网站
  • 营销型网站建设设计6徐州关键词优化排名
  • 网站推广常用方法网站子域名查询
  • 胶州建设局网站东莞搜索引擎推广
  • 关于咖啡厅网站建设的论文重庆企业站seo
  • 商务网站规划与设计实训报告百度指数入口
  • 日本儿童福利政策seo外包服务项目
  • 淘宝店铺网站策划福州seo技巧培训
  • 正规专业短期培训学校优化培训学校
  • 怎么向百度提交网站搜索引擎调词工具哪个好
  • 北京 个人网站 备案seo优化啥意思
  • 中国空间站朋友圈抖音推广平台
  • 网络搭建赛项承办市赛申报书安徽网络推广和优化
  • 上海seo优化公司四川自助seo建站
  • 网站开启微信支付功能邀请注册推广赚钱的app
  • 黃色视频做爰网站安全长沙做搜索引擎的公司
  • 超酷个人网站欣赏广州百度推广优化排名
  • 保定专业做网站的公司哪家好信阳seo公司