摘要: Anniversary party 树形dp dp[i][0]=(i的全部员工的max(dp[u][1],dp[u][0)相加,也就是其子员工来或不来的最大快乐值。 dp[i][1]=(i的全部员工的dp[u][0相加,也就是其子员工都不能不来的最大快乐值。 阅读全文
posted @ 2019-08-22 15:25 liulex 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 1358. 分割树 现在有一棵树T,有N个节点,我们想通过去掉一个节点p来把T分割成更小的树,并且满足每个小树中的节点数不超过n/2。 请根据输入的树来输出所有可能的p的号码。 树形dp 在遍历树的过程中,访问每个node,维护两个值: 递归过程中用上一层的sum,不断更新这一层的childmax。 阅读全文
posted @ 2019-08-22 14:52 liulex 阅读(529) 评论(0) 推荐(0) 编辑
摘要: Tree and Permutation 给出一个1,2,3...N的排列,显然全部共有N!种排列,每种排列的数字代表树上的一个结点,设Pi是其中第i种排列的相邻数字表示的结点的距离之和,让我们求sum(Pi)(1<=i<=N!)。 可以设dis(i, j)为树上任意两点间的最短距离,每两点之间的距 阅读全文
posted @ 2019-08-22 14:41 liulex 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 码队的新桌游 树状数组、离散化、二维偏序 阅读全文
posted @ 2019-08-22 11:36 liulex 阅读(208) 评论(0) 推荐(0) 编辑
摘要: struct Item { int a, b, c; int id; int ans; explicit Item(int _a = 0, int _b = 0, int _c = 0) : a(_a), b(_b), c(_c) {} }; struct cmpa { bool operator( 阅读全文
posted @ 2019-08-22 11:03 liulex 阅读(303) 评论(0) 推荐(0) 编辑