1520专题

JD 1520:树的子结构

OJ题目:click here~~ 剑指offer 面试题18 AC_CODE const int maxn = 1008 ;const int maxm = 1008 ;int m , n ;struct Node{int x ;int l ;int r ;Node():l(-1),r(-1){}}A[maxn] , B[maxm];vector<int> g ;void F

hdu 1520 poj2342 anniversary party树形DP

每个节点要么选要么不选,和大多数选不选动归一样,来个dp[i][2],0表示不选,1表示选,那我们只要从叶子节点往根结点不断更新dp[i][0]和dp[i][1]就可以了。 状态转移方程:dp[i[[1] += dp[j][0]                       (当前选了,子节点必定不能选,然后累加)                        dp[i][0] += max

题目1520:树的子结构

题目描述: 输入两颗二叉树A,B,判断B是不是A的子结构。 输入: 输入可能包含多个测试样例,输入以EOF结束。 对于每个测试案例,输入的第一行一个整数n,m(1<=n<=1000,1<=m<=1000):n代表将要输入的二叉树A的节点个数(节点从1开始计数),m代表将要输入的二叉树B的节点个数(节点从1开始计数)。接下来一行有n个数,每个数代表A树中第i个元素的数值,接下来有n

hdu 1520 Anniversary party(基本树形DP)

1、http://acm.hdu.edu.cn/showproblem.php?pid=1520 2、题目大意: 有n个员工,每个员工都有一个rating值,给出员工之间的上下级的关系,要求是有直接上下级关系的员工不能同时出席,现在要求的是选择哪些员工出席,会使得他们的rating之和最大 定义dp[i][1]表示i员工出席时的最大值,dp[i][0]表示i员工不出席时的最大值 dp[i]

树形DP 加分二叉树 and HDU 1520 Anniversary party

题目描述 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数 若某个子树为主,规定其加