week12树状dp

还是dp,之前的dp都是数组而已。
将包含1号结点的一部分连通的结点进行涂漆(这里的连通指的是这一些涂漆的结点可以互相到达并且不会经过没有涂漆的结点),然后将剩下的结点拆掉。给每个结点都评上了分,希望最后留下来,也就是涂漆了的那些结点的评分之和可以尽可能的高。
求一个包含1的价值最大容量有限的连通集;
dp倒是dp,麻烦的是怎么找到后序遍历,这可不是二叉树。
想了一下觉得和上一道题没什么区别。
dp[i][0]=0;dp[i][1]=v[i];
用vector的形式把根的所有子存下来,
用深搜的方式遍历过去获得dp[i][m]->包括i的m大背包能装多少;
转移方程很明显了,加个循环:

for(int i=0;i<q[loc].size();i++)  
        for(int j=v;j>=2;j--)             //j只能到2  因为必须要保证dp[x][1]不被改变(包含根节点)  
            for(int k=1;k<j;k++)           //取第i子树的k个节点  
                dp[loc][j]=max(dp[loc][j],dp[loc][j-k]+dp[q[loc][i]][k]); 

树规有树规的特性。没有环,dfs不会重复,而且具有明显而又严格的层数关系。
节点不超过5000时可以用邻接矩阵;超过就只能用边。
树规方程通常是叶子节点归纳到根。题目类型如下:
神tm的poj又崩了。。。

加分二叉树:区间动规+树的遍历;

二叉苹果树:二叉树上的动规;

最大利润:多叉树上的动规;

选课:多叉树转二叉;

选课(输出方案):多叉转二叉+记录路径;

软件安装:判断环+缩点+多叉转二叉;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,769评论 0 33
  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 13,331评论 0 25
  • 课程介绍 先修课:概率统计,程序设计实习,集合论与图论 后续课:算法分析与设计,编译原理,操作系统,数据库概论,人...
    ShellyWhen阅读 2,353评论 0 3
  • 第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章...
    SeanCheney阅读 5,821评论 0 19
  • 本文涉及更多的是概念,代码部分请参考之前写过的 2 篇博客 基于Javascript的排序算法基本数据结构和查找算...
    faremax阅读 1,292评论 0 2