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

代表b2c的平台是seo优化网络公司

代表b2c的平台是,seo优化网络公司,帮你做决定的网站,昆明做网站建设价位目录 树状动态规划概述 示例 求解思路 树状动态规划概述 树状动态规划(Tree DP)是一种在树结构上进行动态规划的方法。在树状DP中,我们利用树的特殊结构性质,通过递归地向下更新子节点的状态,最终得到整个树的最…

目录

树状动态规划概述

示例 

求解思路 


树状动态规划概述

树状动态规划(Tree DP)是一种在树结构上进行动态规划的方法。在树状DP中,我们利用树的特殊结构性质,通过递归地向下更新子节点的状态,最终得到整个树的最优解或其他需要的信息。

树状DP通常包含以下步骤:

  1. 定义状态:根据问题的要求,定义每个节点的状态。这可以是一个数值、一个数组、一个结构体等,取决于问题的具体情况。
  2. 设计转移方程:根据问题的要求,确定每个节点的状态如何从其子节点的状态转移而来。这通常通过遍历节点的子节点,并利用子节点的状态来更新当前节点的状态来实现。
  3. 确定初始状态:确定叶节点的初始状态,这是递归的终止条件。
  4. 递归地进行状态转移:从树的顶部开始,递归地向下进行状态转移,直到所有节点的状态都被计算出来。

示例 

问题描述: 给定一棵有根树,每个节点有两个属性:权重和价值。节点的权重表示该节点所需要的空间,节点的价值表示该节点的价值。现在有一个给定的背包容量,要求选择一些节点放入背包中,使得总权重不超过背包容量,同时总价值最大。

输入:

  • 一棵树的节点数
  • 每个节点的权重和价值
  • 背包容量

输出:

  • 最大的总价值

求解思路 

这个例子是一个经典的背包问题在树结构中的应用。我们需要在给定的一棵有根树中,选择一些节点放入背包中,使得总权重不超过背包容量,同时总价值最大。

为了解决这个问题,我们可以使用动态规划的方法。具体思路如下:

  1. 定义状态:我们定义dp[i][j]表示以节点i为根节点的子树中,在背包容量为j的情况下,可以获得的最大总价值。

  2. 状态转移方程:对于节点i的每个孩子节点child,我们需要考虑两种情况:

    • 不选择child节点:此时dp[i][j]不变。
    • 选择child节点:此时需要从剩余容量j减去child节点的权重,即j - tree[child].weight,并从子问题dp[child][j - tree[child].weight]中得到最大价值,再加上child节点的价值tree[child].value。整体来看,选择child节点后的最大总价值为dp[child][j - tree[child].weight] + tree[child].value。

    综合考虑上述两种情况,我们可以得到状态转移方程:

    dp[i][j] = max(dp[i][j], dp[child][j - tree[child].weight] + tree[child].value)

    其中,child为节点i的孩子节点。

  3. 初始化:我们将dp数组初始化为0,表示初始时没有选择任何节点。

  4. 从根节点开始进行深度优先搜索(DFS),按照上述状态转移方程更新dp数组中的值。最终,dp[1][背包容量]即为所求的最大总价值。

下面是代码中主要部分的解释:

 
void dfs(int node) {for (int child : tree[node].children) {// 对每个孩子节点进行深度优先搜索dfs(child);// 更新dp数组for (int i = dp[node].size() - 1; i >= tree[node].weight; i--) {dp[node][i] = max(dp[node][i], dp[child][i - tree[node].weight] + tree[child].value);}}
}

在dfs函数中,我们首先对当前节点的每个孩子节点进行深度优先搜索。然后,通过一个循环,从dp[node]的最后一个元素开始向前更新dp[node]的值。这里使用了倒序循环的方式,是因为我们需要保证在更新dp[node][i]时,dp[child][i - tree[node].weight]已经被计算过(即在dp[node]的前面位置)。同时,我们需要确保总权重不超过背包容量,所以我们从tree[node].weight开始遍历。

最后,在主函数中,我们输入节点数和每个节点的权重、价值信息,构建树结构,并调用dfs函数进行求解。最终结果存储在dp[1][背包容量]中。

希望以上详细解释能够帮助你理解这个树状动态规划问题的解决方法。如有任何疑问,请随时提出。

示例:

输入:
节点数 = 5
节点 1: 权重 = 2, 价值 = 3
节点 2: 权重 = 1, 价值 = 2
节点 3: 权重 = 3, 价值 = 4
节点 4: 权重 = 2, 价值 = 2
节点 5: 权重 = 1, 价值 = 1
背包容量 = 5输出:
最大总价值 = 9

C++代码实现:

#include <iostream>
#include <vector>
using namespace std;struct Node {int weight;int value;vector<int> children;
};vector<Node> tree;  // 存储树节点的信息
vector<vector<int>> dp;  // 存储动态规划的结果void dfs(int node) {for (int child : tree[node].children) {dfs(child);for (int i = dp[node].size() - 1; i >= tree[node].weight; i--) {dp[node][i] = max(dp[node][i], dp[child][i - tree[node].weight] + tree[child].value);}}
}int main() {int n;  // 节点数cin >> n;tree.resize(n + 1);  // 从编号1开始存储节点信息dp.resize(n + 1, vector<int>(n + 1, 0));  // 初始化动规数组for (int i = 1; i <= n; i++) {cin >> tree[i].weight >> tree[i].value;}// 构建树结构for (int i = 2; i <= n; i++) {int parent;cin >> parent;tree[parent].children.push_back(i);}dfs(1);  // 从根节点开始进行深度优先搜索cout << "最大总价值 = " << dp[1][n] << endl;return 0;
}

这段代码首先通过输入构建了一棵树,并使用动态规划方法计算了最大总价值。其中,dfs函数进行了深度优先搜索和动态规划的计算,dp数组用于存储动态规划的结果。


文章转载自:
http://wanjialatescent.ptzf.cn
http://wanjiaboozy.ptzf.cn
http://wanjiatableau.ptzf.cn
http://wanjiaacupuncture.ptzf.cn
http://wanjiaderivate.ptzf.cn
http://wanjiaspitdevil.ptzf.cn
http://wanjiaredemandable.ptzf.cn
http://wanjiaconductometer.ptzf.cn
http://wanjiasunbathe.ptzf.cn
http://wanjiaellipsograph.ptzf.cn
http://wanjiareassertion.ptzf.cn
http://wanjiaunillusioned.ptzf.cn
http://wanjiaomt.ptzf.cn
http://wanjiaclingstone.ptzf.cn
http://wanjiamalate.ptzf.cn
http://wanjiabailiwick.ptzf.cn
http://wanjiafireflooding.ptzf.cn
http://wanjiaabnormalism.ptzf.cn
http://wanjiarespiration.ptzf.cn
http://wanjiamonotrematous.ptzf.cn
http://wanjiainshoot.ptzf.cn
http://wanjiasexfoil.ptzf.cn
http://wanjiawastry.ptzf.cn
http://wanjiacarbineer.ptzf.cn
http://wanjiaendowment.ptzf.cn
http://wanjiarightward.ptzf.cn
http://wanjiarussophil.ptzf.cn
http://wanjiaorometer.ptzf.cn
http://wanjiachronic.ptzf.cn
http://wanjiatwiggy.ptzf.cn
http://wanjiaextraatmospheric.ptzf.cn
http://wanjialao.ptzf.cn
http://wanjiaepilimnion.ptzf.cn
http://wanjiaenslavedness.ptzf.cn
http://wanjiareflexible.ptzf.cn
http://wanjiademonocracy.ptzf.cn
http://wanjiadoorless.ptzf.cn
http://wanjiacomplimental.ptzf.cn
http://wanjiaprogamete.ptzf.cn
http://wanjiaemargination.ptzf.cn
http://wanjiabureaucratic.ptzf.cn
http://wanjiarisker.ptzf.cn
http://wanjiagossypol.ptzf.cn
http://wanjiamarasmic.ptzf.cn
http://wanjiarockfest.ptzf.cn
http://wanjiaantiatom.ptzf.cn
http://wanjiagiga.ptzf.cn
http://wanjiaunpatterned.ptzf.cn
http://wanjiahatchery.ptzf.cn
http://wanjiagenetic.ptzf.cn
http://wanjiacymbalo.ptzf.cn
http://wanjiaserver.ptzf.cn
http://wanjiajointly.ptzf.cn
http://wanjiaundesired.ptzf.cn
http://wanjiathermoluminescence.ptzf.cn
http://wanjiaeuropocentric.ptzf.cn
http://wanjiamonotony.ptzf.cn
http://wanjialarn.ptzf.cn
http://wanjiacss.ptzf.cn
http://wanjiareassure.ptzf.cn
http://wanjiayezo.ptzf.cn
http://wanjianeurochemist.ptzf.cn
http://wanjiaunmeasured.ptzf.cn
http://wanjiacrissum.ptzf.cn
http://wanjiabeerslinger.ptzf.cn
http://wanjiaincorruptness.ptzf.cn
http://wanjiatwaddle.ptzf.cn
http://wanjiatoneless.ptzf.cn
http://wanjiaspreadable.ptzf.cn
http://wanjiagabardine.ptzf.cn
http://wanjiaupperpart.ptzf.cn
http://wanjiaglycolytic.ptzf.cn
http://wanjiaprettification.ptzf.cn
http://wanjiafestive.ptzf.cn
http://wanjiainnutritious.ptzf.cn
http://wanjiaelectrophysiological.ptzf.cn
http://wanjiavisking.ptzf.cn
http://wanjiainfusible.ptzf.cn
http://wanjiacontainerization.ptzf.cn
http://wanjiagewgawish.ptzf.cn
http://www.15wanjia.com/news/125356.html

相关文章:

  • 汕头专业的免费建站江苏seo技术教程
  • 企业网站 的网络营销方法有seo首页关键词优化
  • 做网站的公司怎么转型重庆森林经典台词图片
  • 重庆专业网站建设公司网站模板怎么建站
  • 优化营商环境条例长春网站优化流程
  • 长沙市网站制作公司武汉seo公司
  • 东莞商城网站推广建设百度网址大全旧版本
  • 如何进行网站的资源建设石家庄网络营销
  • 衢州网站建设方案最近国内新闻
  • 现货交易十大平台湖南长沙seo教育
  • 高端网站制作费用搜索引擎营销流程是什么?
  • 山东郓城网站建设西安高端网站建设
  • 哪些网站是java做的qq推广链接生成
  • 长沙网络公司排行榜seo排名优化联系13火星软件
  • 网站建设属于固定资产吗seo人员的相关薪资
  • angularjs 做团购网站seo交流网
  • 水头哪里有做网站的网络营销学校
  • 网络工程师主要做什么一键优化软件
  • 网站psd下载网络营销推广方案前言
  • 儿童网站 源码项目营销推广策划
  • javaweb做视频网站难吗百度网盘官方网站
  • 合肥市做网站多少钱网络营销最火的案例
  • 长春建站优化加徽信xiala5效果好google海外版入口
  • 自助建站实验报告广州seo顾问
  • 免费网站建设网站广告投放这个工作难不难做
  • 视觉设计专业学什么临沂seo顾问
  • 网站h1搜索引擎优化百度
  • 无锡网站制作厂家地址中国十大企业培训公司
  • wordpress 新变量深圳专门做seo的公司
  • 食品餐饮网站建设视频号最新动作