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

网软志成个人商城网站厦门互联网公司排名

网软志成个人商城网站,厦门互联网公司排名,阿里巴巴官网电脑版,凡科小程序教程一、算法内容 树形动态规划,就是在树这一特殊的结构上维护、更新状态的最优解。 通常,我们从根结点出发,向子结点作深度优先搜索,并由其子结点的最优解合并得到该结点的最优解。因此在大多数时候我们都需要借助递归和回溯来帮助…

一、算法内容

树形动态规划,就是在树这一特殊的结构上维护、更新状态的最优解。

通常,我们从根结点出发,向子结点作深度优先搜索,并由其子结点的最优解合并得到该结点的最优解。因此在大多数时候我们都需要借助递归和回溯来帮助我们完成动态规划的过程。

比如,我们现在需要计算子树 u u u 的大小 s i z e [ u ] size[u] size[u],首先遍历其所有子结点 c h i l d s [ u ] childs[u] childs[u],再由子结点的 s i z e size size 累加得到,即:
s i z e [ u ] = ∑ s i z e [ v ] , v ∈ c h i l d r e n ( u ) . size[u]=\sum size[v],v\in children(u). size[u]=size[v],vchildren(u).
有些问题,我们还需再次从根结点出发,向子结点作深度优先搜索。对于树上的每个结点(除根结点以外),由父结点的信息(父结点合并后的信息,除去该孩子的信息,就是其余孩子的信息)更新该结点的信息。

二、实例分析

1. P1352 没有上司的舞会

(1)题目大意

这里有一棵总共有 n n n 个结点的树,根节点已经确定,每一个结点都有一个权值。现在要求选择树上的一些结点,使得它们的权值和最大,并且满足所选择的所有结点之间都没有父子关系。

(2)题目分析

  • 很显然,每个结点只有选择和不选择两种情况,我们可以将这两种状态分别表示为 1 1 1 0 0 0

  • 不难发现一个结点选择与否的结果只会影响到自己上一层的选择情况,这就满足了无后效性

  • u u u 是当前结点, v v v 代表它的子结点。 d p [ u ] [ 0 ] dp[u][0] dp[u][0] 表示不选择 u u u 的最大权重, d p [ u ] [ 1 ] dp[u][1] dp[u][1] 表示选择 u u u 的最大权重。根据所选择结点没有父子关系这一条件,很容易得出状态转移方程:
    d p [ u ] [ 0 ] = d p [ u ] [ 0 ] + ∑ max ⁡ ( d p [ v ] [ 0 ] , d p [ v ] [ 1 ] ) , d p [ u ] [ 1 ] = d p [ u ] [ 1 ] + ∑ max ⁡ ( d p [ v ] [ 0 ] ) , \begin{aligned} dp[u][0] &= dp[u][0]+\sum\max(dp[v][0], dp[v][1]),\\ dp[u][1] &= dp[u][1]+\sum\max(dp[v][0]), \end{aligned} dp[u][0]dp[u][1]=dp[u][0]+max(dp[v][0],dp[v][1]),=dp[u][1]+max(dp[v][0]),
    v v v 遍历 u u u 的所有子结点。

  • 可以观察到题目是满足最优子结构的。

  • 时间复杂度为 O ( n ) O(n) O(n)

(3)核心代码

void dfs(ll u)
{for(ll i = p[u]; i != -1; i = e[i].next){ll v = e[i].v;dfs(v);dp[u][0] += max(dp[v][0], dp[v][1]);dp[u][1] += dp[v][0]; }
}

2. 二叉苹果树

(1)题目大意

这里有一棵苹果树,它共有 N N N 个结点,编号为 1 ∼ N 1 \sim N 1N,树根编号一定是 1 1 1。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最多能留住多少苹果。

(2)题目分析

  • 首先我们需要尊重一下物理原理,当某条边被保留下来时,从根节点到这条边的路径上的所有边也都必须保留。

  • 不难发现对于每棵子树的情况来说,我们只需要记录以它为根且保留 j j j 条边能获得的最大苹果数目即可,至于具体它如何保留的并不重要。这就满足了 d p dp dp 的条件。

  • 特别注意,对于父节点 u u u 来说,如果要保留子结点 v v v 的这颗子树,那么 ( u , v ) (u,v) (u,v) 这条边也是一定要保留的。

  • 如此一来我们其实就把该问题转化为了一个 01 01 01 背包问题,背包容量是父节点 u u u 总共要保留的边数 j j j,物品就是子节点 v v v 要保留的边数 k k k,物品的价值就是这棵子树对应的苹果数量以及这条边的苹果数量

  • d p [ u ] [ j ] dp[u][j] dp[u][j] 表示以 u u u 为根的子树上保留 j j j 条边时能获得的苹果数目最大值,那么状态转移方程可以表示为:
    d p [ u ] [ j ] = max ⁡ ( d p [ u ] [ j ] , d p [ u ] [ j − k − 1 ] + d p [ v ] [ k ] + e [ i ] . w ) dp[u][j]=\max(dp[u][j],dp[u][j-k-1]+dp[v][k]+e[i].w) dp[u][j]=max(dp[u][j],dp[u][jk1]+dp[v][k]+e[i].w)

  • 时间复杂度为 O ( n 3 ) O(n^3) O(n3)

(3)核心代码

void dfs(ll u, ll pre)
{for(ll i = p[u]; i != -1 ; i = e[i].next){ll v = e[i].v;if(v != pre){dfs(v, u);for(ll j = m; j >= 1; j--)for(ll k = 0; k <= j - 1; k++)dp[u][j] = max(dp[u][j], dp[u][j - k - 1] + dp[v][k] + e[i].w);}}
}

三、作业

1.黄题

P1122 最大子树和

P1351 [NOIP 2014 提高组] 联合权值

P1352 没有上司的舞会

2.绿题

P2014 [CTSC1997] 选课

P2015 二叉苹果树

3.蓝题

P3914 染色计数

P3953 [NOIP 2017 提高组] 逛公园

http://www.yayakq.cn/news/802248/

相关文章:

  • 做网站 华普花园站长之家特效网站
  • 做网站和百度推广有什么不一样wordpress+调用多媒体
  • 聊城找个人做网站网站开发亿玛酷技术
  • 贵南县公司网站建设哪个做网站公司好
  • 广州电子商务网站建设费用有趣网站之家
  • 网站流量与带宽电话约建设网站 客户
  • 凡科申请的网站和qq空间一样吗用frontpage制作网页教程
  • 男女直接做的视频网站贵阳网站设计方案
  • 郑州哪有做网站的公司dw制作一个手机网站模板下载
  • 提供网站制作公司报价大连企业网站排名
  • 外国网站 游戏设定图建查查官网
  • 安庆市建设银行网站首页湛江cms模板建站
  • 绍兴做外贸网站的公司wordpress改造彩票
  • 做网站办贷款凡科建站做的网站有什么短板
  • 做网站都是怎么收费网站建设响应技术
  • 涡阳做网站icp备案 网站服务内容
  • win7如何建设免费网站科技 响应式网站模板
  • 西安网站建设电话上海网站 牛巨微网络科技seo公司
  • 大学生网站设计作业wordpress不显示标题
  • 做网站有一个火箭回顶部seo软件哪个好
  • 怎么给网站做外链网站建设公司薪资
  • wap网站制作免费咨询医生在线男科
  • 网站建设合同 英文济宁网站开发平台
  • 教育网站设计建设网站是做手机版好还是pc版好
  • 公司网站上线的通知国内时事新闻2023最新
  • 无为做网站免费的网站域名查询app
  • 大学生网站设计作品成品代码如何建设网站平台
  • 装修网站是怎么建设的英德市网站建设
  • 租车网站系统规划专业商业空间设计公司
  • 电子商务网站设计分析怎么做网站的栏目和板块