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

罗湖网站建设公司做企业云网站的企业邮箱

罗湖网站建设公司,做企业云网站的企业邮箱,啥是网络推广,做代加工的网站发布题目 解题思路 首先,解决此题的前置知识是需要掌握普通的 01 背包问题。当然,这题肯定不可能这么简单。题目相对于 01 背包来说,唯一的区别在于小蓝可以使用 1 次魔法。我们只需要多加一维状态记录是否使用了魔法即可。下面考虑动态规划&…

题目

在这里插入图片描述

解题思路

首先,解决此题的前置知识是需要掌握普通的 01 背包问题。当然,这题肯定不可能这么简单。题目相对于 01 背包来说,唯一的区别在于小蓝可以使用 1 次魔法。我们只需要多加一维状态记录是否使用了魔法即可。下面考虑动态规划(dp)状态。


动态规划状态定义

状态 1: $ f[i][j][0] $

表示只考虑前 $ i $ 个物品,背包容量为 $ j $,并且还没有使用魔法的情况下的最大价值。

对于该状态的转移,因为这一状态是未使用魔法的,所以转移方程同 01 背包一样:

f [ i ] [ j ] [ 0 ] = { f [ i − 1 ] [ j ] [ 0 ] 当  j < w [ i ] , max ⁡ ( f [ i − 1 ] [ j ] [ 0 ] , f [ i − 1 ] [ j − w [ i ] ] [ 0 ] + v [ i ] ) 当  j ≥ w [ i ] . f[i][j][0] = \begin{cases} f[i-1][j][0] & \text{当 } j < w[i], \\ \max(f[i-1][j][0], f[i-1][j-w[i]][0] + v[i]) & \text{当 } j \geq w[i]. \end{cases} f[i][j][0]={f[i1][j][0]max(f[i1][j][0],f[i1][jw[i]][0]+v[i]) j<w[i], jw[i].

状态 2: $ f[i][j][1] $

表示只考虑前 $ i $ 个物品,背包容量为 $ j $,并且已经使用了魔法(注意并不一定是对第 $ i $ 个物品使用)的情况下的最大价值。

对于每个物品的选择情况,可以分为三种情况来考虑:

  1. 如果当前物品 $ i $ 的重量 $ w[i] > j $,那么说明该物品无法选择,更不用考虑是否对该物品使用魔法。
  2. 如果在不符合情况 1 的情况下,此时满足 $ w[i] + k > j $,那么我们是无法对该物品使用魔法的,因为使用魔法后物品重量超过了背包容量。但我们可以在不使用魔法的情况下选择该物品。
  3. 如果此时满足 $ w[i] + k \leq j $,那么说明我们可以使用魔法选择该物品。

对这三种情况进行详细分析:

  • 对于第一种情况:因为根本选不了该物品,所以状态转移只有一种情况。
  • 对于第二种情况:虽然我们可以选择此物品,但我们也可以不选择它,两者取最大值。
  • 对于第三种情况:我们可以不选它,也可以选它,也可以使用魔法选它,存在三种情况,我们取三者中的最大值。

需要注意的是,当我们对该物品使用魔法时,转移时应该是前面没有使用魔法的状态,即最后一维状态是 $ 0 $,因为魔法只能用一次。

状态转移方程为:

f [ i ] [ j ] [ 1 ] = { f [ i − 1 ] [ j ] [ 1 ] 情况 1 , max ⁡ ( f [ i − 1 ] [ j − w [ i ] ] [ 0 ] + v [ i ] , f [ i ] [ j ] [ 0 ] ) 情况 2 , max ⁡ ( max ⁡ ( f [ j ] [ 1 ] , f [ j − w [ i ] ] [ 1 ] + v [ i ] ) , f [ j − ( w [ i ] + k ) ] [ 0 ] + v [ i ] × 2 ) 情况 3 . f[i][j][1] = \begin{cases} f[i-1][j][1] & \text{情况 1}, \\ \max(f[i-1][j-w[i]][0] + v[i], f[i][j][0]) & \text{情况 2}, \\ \max(\max(f[j][1], f[j-w[i]][1] + v[i]), f[j-(w[i]+k)][0] + v[i] \times 2) & \text{情况 3}. \end{cases} f[i][j][1]= f[i1][j][1]max(f[i1][jw[i]][0]+v[i],f[i][j][0])max(max(f[j][1],f[jw[i]][1]+v[i]),f[j(w[i]+k)][0]+v[i]×2)情况 1,情况 2,情况 3.


优化空间复杂度

因为问题本质还是属于 01 背包问题,所以我们可以使用滚动数组对代码进行时间和空间复杂度的优化,压缩一维状态。优化后的状态转移方程可以写成:

f [ j ] [ 1 ] = { max ⁡ ( f [ j − w [ i ] ] [ 0 ] + v [ i ] , f [ j ] [ 0 ] ) 普通选择 , max ⁡ ( max ⁡ ( f [ j ] [ 1 ] , f [ j − w [ i ] ] [ 1 ] + v [ i ] ) , f [ j − ( w [ i ] + k ) ] [ 0 ] + v [ i ] × 2 ) 使用魔法 . f[j][1] = \begin{cases} \max(f[j-w[i]][0] + v[i], f[j][0]) & \text{普通选择}, \\ \max(\max(f[j][1], f[j-w[i]][1] + v[i]), f[j-(w[i]+k)][0] + v[i] \times 2) & \text{使用魔法}. \end{cases} f[j][1]={max(f[jw[i]][0]+v[i],f[j][0])max(max(f[j][1],f[jw[i]][1]+v[i]),f[j(w[i]+k)][0]+v[i]×2)普通选择,使用魔法.

ACcode

//背包与魔法
#include <iostream>
#include <algorithm>using namespace std;
#define int long long
const int N = 2010 , M = 10010;
int w[N] , v[N];//重量  价值
int dp[M][2];
int n , m , k;signed main()
{cin >> n >> m >> k;for(int i = 1;i <= n;i ++){cin >> w[i] >> v[i];}for(int i = 1;i <= n;i ++){for(int j = m;j >= w[i];j --){dp[j][0] = max(dp[j][0] , dp[j-w[i]][0] + v[i]);if(w[i] + k <= j){dp[j][1] = max(max(dp[j][1],dp[j-w[i]][1] + v[i]) , dp[j-(w[i]+k)][0] + v[i] * 2);}}}cout << max(dp[m][1] , dp[m][0]) << endl;return 0;
}

文章转载自:

http://g8rcXGMJ.rpstb.cn
http://2Lo5VeyA.rpstb.cn
http://DEUQc5lO.rpstb.cn
http://RJaAm66B.rpstb.cn
http://NSpgAdc6.rpstb.cn
http://8T39zgBG.rpstb.cn
http://I8KFPDZy.rpstb.cn
http://FQ0EIAgq.rpstb.cn
http://jLDLPgY4.rpstb.cn
http://bVqu6vtH.rpstb.cn
http://hmnsqqfi.rpstb.cn
http://WAPBBK1x.rpstb.cn
http://oRydLdrv.rpstb.cn
http://3VUocZ9W.rpstb.cn
http://p9YcVGR2.rpstb.cn
http://gZ1WXltP.rpstb.cn
http://PsVlS66x.rpstb.cn
http://ngOh2ewE.rpstb.cn
http://qDojelck.rpstb.cn
http://WwsqrPNv.rpstb.cn
http://v8RLbfaB.rpstb.cn
http://I8hmOApa.rpstb.cn
http://pLKRdzu0.rpstb.cn
http://bzBwfv2v.rpstb.cn
http://0oI9qhCS.rpstb.cn
http://TgwbQB54.rpstb.cn
http://61MgQjZ4.rpstb.cn
http://k4PWaTey.rpstb.cn
http://tIlfatKu.rpstb.cn
http://AUBk6lsn.rpstb.cn
http://www.dtcms.com/wzjs/769733.html

相关文章:

  • 广东两学一做考学网站泰安营销型手机网站建设
  • 网站最好推广的方式苏州关键词搜索排名
  • 推广做网站电话中国建设银行北京分行官网站
  • 修改数据库密码 进不了网站后台一个vps建两个网站怎么弄数据库
  • 子网站怎么建设排版设计工作内容
  • 企业建设网站需要什么资料企业管理培训课程简介
  • 企业网站管理系统php源码厦门网站做优化
  • 九洲建设集团网站二手交易网站建设内容策划
  • 网站做任务给钱的能建设铁塔的公司网站
  • 多用户自助建站系统百度产品优化排名软件
  • 网站改版不收录上辽宁建设工程信息网站
  • 玄武模板网站制作报价做网站的项目介绍
  • 公司网站开发费用记入什么科止嵌入式网站开发学习
  • 在线旅游电商网站有哪些哪个网站的旅游板块做的好
  • wordpress主题实现伪静态seo sem 外贸建站 网站建设 文化墙设计
  • 电子购物网站的设计与实现一级域名网站怎样收费的
  • 潮动九州网站建设旧房装修找哪家
  • 互联网装饰网站wordpress仿36kr主题
  • 做百度推广网站多少钱搜索引擎优化策略应该包括
  • 网站建设知识点网络营销建设
  • 网站制作多少页杭州余杭区抖音seo质量高
  • 北京网站优化推广方案3g版网站制作
  • 破解版网站建设在线生成网站
  • 企业网站建设案例网站建设外包被骗
  • 做网站买那种服务器电商网站建设精准扶贫的目的
  • 梓潼 网站建设 有限公司网站建设的功能需求分析
  • asp.net 网站开发 pdf百度站长平台网址
  • 北京昌盛宏业网站建设开发商不给办房产证怎么办
  • 国家城乡和建设厅特殊工种网站连云港规划建设网站
  • 手机音乐网站源码wordpress 微博页面