摘要:
大致思路是从根节点DFS下去后,处理完子树信息后,合并然后得出根节点信息,但是这一题子节点信息的合并确实比较棘手.如果我们尝试把从当前根节点走K步得到最大苹果数,划分为如下两种: go[t][i]代表节点t的所有子树上走i步不返回,取得的最大苹果数 bk[t][i]代表节点t的所有子树上走i步并返回,取得的最大苹果数 数组二维go,bkgo[t][i]代表节点t的所有子树上至多走i步不返回,取得的最大苹果数bk[t][i]代表节点t的所有子树上至多走i步并返回,取得的最大苹果数求节点为x,实行不断合并子树求最优值当前合并到了q棵子树:go[x][i]就是这q棵子树上至多走i步不返... 阅读全文
摘要:
对于一颗以 rt 为根的树,其有 I 个子节点分别为 S1,S2,。。。,SI ,则 状态 dp(i,j)表示前 1,2,,,,,I 子树,组合而成一棵 包含 J个节点的 子树的最小花费 sum(Si) 表示 以 Si 节点为根的子树,节点数量 Cut (Si, K) 表示 子树 Si 中取得 一棵包含 根Si 的子树 且节点数量为 K 的最小花费 则状态转移方程: 其中 x <= Sum(Si), 且 注意到, 其实我们已经把 子树S1,S2,,S(i-1) 合并到了 dp(I-1)里头去了。这样就简化了枚举计算。 另外,还可以注意到 ... 阅读全文
摘要:
1、如果田忌剩下的马中最强的马都赢不了齐王剩下的最强的马,那么应该用最差的一匹马去输给齐王最强的马。 2、如果田忌剩下的马中最强的马可以赢齐王剩下的最强的马,那就用这匹马去赢齐王剩下的最强的马。 3、如果田忌剩下的马中最强的马和齐王剩下的最强的马打平的话,可以选择打平或者用最差的马输掉比赛。 设表示齐王按从强到弱的顺序出马和田忌进行了i场比赛之后,从“头”取了j匹较强的马,从“尾”取了i-j匹较弱的马,所能够得到的最大盈利。 状态转移方程如下: 注意边界条件的判定View Code // Code by yefeng162... 阅读全文