POJ2486 Apple Tree(树形背包)】的更多相关文章

题目大意 给定一棵n个结点的树,每个结点上有一定数量的苹果,你可以从结点1开始走k步(从某个结点走到相邻的结点算一步),经过的结点上的苹果都可以吃掉,问你最多能够吃到多少苹果? 题解 蛋疼的问题就是可以往回走~~~~想N就木有想到解法,看了下网上的解题报告~~~~想到了其实还是挺容易理解的~~~分为两种情况,就是有些点只需要走一次,而有些则需要走两次. 方程表示: dp[0][u][j]表示从结点u开始走j步并且返回到结点u获得的最大价值 dp[1][u][j]表示从结点u开始走j步不回到结点u…
从每个节点u出发后有两种情况:回到u和不回到u. dp数组设为三维,第一维是节点编号,第二维是从该节点开始走的步数,第三维1/0 表示是否回到该节点. 可以回到时:dp[u][j][1]=max(dp[u][j][1],dp[u][j-t][1]+dp[v][t-2][1]); 不能回到时,分为两种情况:1.最终停在v子树上 2.最终停在其他子树上. 1.dp[u][j][0]=max(dp[u][j][0],dp[u][j-t][1]+dp[v][t-1][0]); 2.dp[u][j][0]…
Apple Tree Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9989   Accepted: 3324 Description Wshxzt is a lovely girl. She likes apple very much. One day HX takes her to an apple tree. There are N nodes in the tree. Each node has an amoun…
Apple Tree Description Wshxzt is a lovely girl. She likes apple very much. One day HX takes her to an apple tree. There are N nodes in the tree. Each node has an amount of apples. Wshxzt starts her happy trip at one node. She can eat up all the apple…
Apple Tree Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9808   Accepted: 3260 Description Wshxzt is a lovely girl. She likes apple very much. One day HX takes her to an apple tree. There are N nodes in the tree. Each node has an amoun…
问题:有一课含有n(n<=2e5)个结点的数,有m(m<=1000)个结点是红色的,其余的结点是黑色的.现从树中选若干数量的结点,其中红色的恰有k个,并且每个结点都不是其他任何另一个结点的后代,分别求出k=0,1,2,...,m的选法种数.(树根为1) 又是一道树形背包问题.只不过这个问题和普通的树形背包正好相反,选了一个结点就不能选它的祖先,但解法都是差不多的. 设dp[u][i]为在第u个结点及其子树下,红色结点数恰为i个的选法总数,则dp[u]为它的所有子结点的dp值构成的多项式的乘积加…
题目描述 从前有棵树. 找出K个点A1,A2,…,Ak. 使得∑dis(AiAi+1),(1<=i<=K-1)最小. 输入 第一行两个正整数n,k,表示数的顶点数和需要选出的点个数. 接下来n-l行每行3个非负整数x,y,z,表示从存在一条从x到y权值为z的边. I<=k<=n. l<x,y<=n 1<=z<=10^5 n <= 3000 输出 一行一个整数,表示最小的距离和. 样例输入 10 7 1 2 35129 2 3 42976 3 4 244…
Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu Description Wshxzt is a lovely girl. She likes apple very much. One day HX takes her to an apple tree. There are N nodes in the tree. Each node has an amount of apples. Wshxzt…
题目链接:https://vjudge.net/problem/POJ-2486 题意:一棵点权树,起点在1,求最多经过m条边的最大点权和. 思路: 树形dp经典题.用3维状态,dp[u][j][0/1]表示在子树u中走j步的最大价值(回到u/不回到u).显然dp[u][j][1]>=dp[u][j][0],所以dp[1][m][1]就是最终答案. 假设v为u的子结点,k为到v且在v中所用步数,那么转移方程分3步,为: dp[u][j][0]=max(dp[u][j][0] , dp[u][j-…
题目大概是一棵树,每个结点都有若干个苹果,求从结点1出发最多走k步最多能得到多少个苹果. 考虑到结点可以重复走,容易想到这么个状态: dp[u][k][0]表示在以结点u为根的子树中走k步且必须返回u能得到的最多苹果 dp[u][k][1]表示在以结点u为根的子树中走k步且可以不返回u能得到的最多苹果 单纯这样转移又是指数级的时间复杂度,所以又是树上背包了 转移就是: dp[u][k][0]=max(dp[u][k][0],dp[v][k'][0]+dp[u][k-k'-2][0])(v是u当前…