摘要: 题解 一道我觉得和二叉树没有关系的题…… 因为直接上点分就过了,虽然很慢,而且代码很长 你需要记录一个点分树,对于每个点分树的重心,记录一下上一次进行分割时树的重心以及这个重心和上一次重心所连接的点以及连接的边的距离 然后计算这个重心和所在的树到上一个重心节点路径和的前缀和,还有节点个数和 处理每棵 阅读全文
posted @ 2018-09-13 19:48 sigongzi 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题解 把所有=的点连起来,一个图合法肯定它是一个有向树森林 我们新建一个点,把这个点和其他所有树的树根连起来 定义$dp[u][j]$表示第u个点长度为j的序列的方案数 转移方法是 $dp[u][j] += g[k] \cdot dp[v][h] \cdot \binom{j}{k} \cdot \ 阅读全文
posted @ 2018-09-13 18:49 sigongzi 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题解 怎么觉得都像树dp,不像贪心 但是树dp确实做不了 把每个节点的值设置为樱花+儿子数 把儿子合并到父亲上就是父亲的剩余容量加上儿子的值 1 每次在父亲的时候将儿子的值排序然后能加就加上 因为儿子如果不加进去那么之后的操作与儿子再也没有关系了,儿子影响的只有父亲,那么只是能让父亲一个节点被加入, 阅读全文
posted @ 2018-09-13 16:38 sigongzi 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 题解 把所有边反向 从小到大枚举每个点,把每个点能到达的点挑出来,判完无解后显然是一个DAG,然后在上面求一个编号最大的拓扑序,把这些点全部标记为已选,把每次求得的拓扑序倒序输出 代码 阅读全文
posted @ 2018-09-13 16:34 sigongzi 阅读(171) 评论(0) 推荐(0) 编辑