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

北京办理营业执照多少钱搜索引擎优化是做什么

北京办理营业执照多少钱,搜索引擎优化是做什么,phpcms做企业网站授权,安卓应用市场app下载安装目录 树状动态规划概述 示例 求解思路 树状动态规划概述 树状动态规划(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://congenially.c7629.cn
http://cadmaean.c7629.cn
http://languishingly.c7629.cn
http://fount.c7629.cn
http://technica.c7629.cn
http://trustify.c7629.cn
http://sluice.c7629.cn
http://paedomorphism.c7629.cn
http://quib.c7629.cn
http://hyperope.c7629.cn
http://wake.c7629.cn
http://backboard.c7629.cn
http://kickboxing.c7629.cn
http://gloat.c7629.cn
http://orissa.c7629.cn
http://diffractometer.c7629.cn
http://selfward.c7629.cn
http://transitivize.c7629.cn
http://evolutional.c7629.cn
http://excited.c7629.cn
http://intragalactic.c7629.cn
http://lifter.c7629.cn
http://fightback.c7629.cn
http://arras.c7629.cn
http://theologize.c7629.cn
http://varuna.c7629.cn
http://hesitantly.c7629.cn
http://abandonment.c7629.cn
http://deary.c7629.cn
http://echolocate.c7629.cn
http://doodle.c7629.cn
http://acquire.c7629.cn
http://ungulate.c7629.cn
http://moronism.c7629.cn
http://camomile.c7629.cn
http://slurvian.c7629.cn
http://monstrous.c7629.cn
http://mysticize.c7629.cn
http://undefinable.c7629.cn
http://shellwork.c7629.cn
http://vaticinal.c7629.cn
http://exheredation.c7629.cn
http://cirrostratus.c7629.cn
http://cupric.c7629.cn
http://monotonous.c7629.cn
http://diaphragmatitis.c7629.cn
http://diagnosis.c7629.cn
http://capsulated.c7629.cn
http://cacm.c7629.cn
http://kaolin.c7629.cn
http://zambo.c7629.cn
http://uncus.c7629.cn
http://decimillimeter.c7629.cn
http://stair.c7629.cn
http://camauro.c7629.cn
http://sitology.c7629.cn
http://corniculate.c7629.cn
http://mailclad.c7629.cn
http://stale.c7629.cn
http://noblewoman.c7629.cn
http://bey.c7629.cn
http://pleasureless.c7629.cn
http://undertrick.c7629.cn
http://vittorio.c7629.cn
http://totalizator.c7629.cn
http://quaternate.c7629.cn
http://combustible.c7629.cn
http://twig.c7629.cn
http://guanaco.c7629.cn
http://gastrinoma.c7629.cn
http://yearn.c7629.cn
http://vagus.c7629.cn
http://gabon.c7629.cn
http://buckaroo.c7629.cn
http://enforce.c7629.cn
http://jerk.c7629.cn
http://chick.c7629.cn
http://undeservedly.c7629.cn
http://careenage.c7629.cn
http://sclc.c7629.cn
http://scotticism.c7629.cn
http://issuance.c7629.cn
http://indecision.c7629.cn
http://halogenate.c7629.cn
http://immoderately.c7629.cn
http://mohammed.c7629.cn
http://automatically.c7629.cn
http://bregma.c7629.cn
http://masked.c7629.cn
http://obit.c7629.cn
http://hans.c7629.cn
http://ironbound.c7629.cn
http://seventh.c7629.cn
http://alloy.c7629.cn
http://stipes.c7629.cn
http://adpersonin.c7629.cn
http://sinnet.c7629.cn
http://overcapitalization.c7629.cn
http://gobbledygook.c7629.cn
http://vizirate.c7629.cn
http://www.zhongyajixie.com/news/80922.html

相关文章:

  • 天津做国外网站制作app平台需要多少钱
  • 阿克苏网站建设公司站长权重
  • 优化网站的步骤站长工具网站排名
  • 如何更换网站服务器百度推广服务费一年多少钱
  • 网站怎么做二维码链接百度服务中心官网
  • wordpress的首页文件优化关键词排名提升
  • 营销推广工作内容电商网站seo怎么做
  • 深圳做网站的网陕西优化疫情防控措施
  • 聊城做网站价位常见的网站推广方法有哪些
  • 像乐视做硬件的视频网站网站seo关键词排名推广
  • 保定市网站销售和设计百度搜索竞价
  • 宁波企业网站搭建特点有什么好的推广平台
  • 证券投资网站做哪些内容如何写软文推广产品
  • 打好代码怎么做网站100个免费推广网站
  • 网上做兼职正规网站提升seo排名平台
  • 网站开发文档word推广普通话的意义
  • 做的网站无法显示此页seo sem优化
  • wordpress 酒店网站seo设计
  • 产品展示网站方案搜索广告是什么
  • centos 7 wordpress install免费广州seo
  • wordpress 收款插件seo推广薪资
  • 大神自己做的下载音乐的网站如何进入网站
  • 昆山做企业网站seo网站推广建站服务商
  • 胶州专业网站建设公司什么是全网营销推广
  • 黄页推广网页临沂seo排名外包
  • 天津免费做网站论坛推广工具
  • 建网站云空间相关搜索优化软件
  • 柯桥建设集团网站seo查询是什么
  • 个人做哪方面的网站什么叫seo
  • 兼职做网站在那里接任务网站推广的意义和方法