该文被密码保护。 阅读全文
posted @ 2017-09-15 21:14 啊宸 阅读(19) 评论(0) 推荐(0)
摘要: 树DP 。 考虑每条边对答案的贡献是边两边的黑点数乘积加白点数乘积乘以边长。所以我们只要知道一个点的某个子树中的黑点数就可以算它到子树这条边的贡献。 就可以树上跑背包。 注意一是不要随便只开单向边(会GG),二是DP初值设为-1,dp[x][0].dp[x][1]初始为0,这样不会考虑不存在的状态。 阅读全文
posted @ 2017-09-15 08:27 啊宸 阅读(153) 评论(0) 推荐(0)
摘要: 最小生成森林? 个人感觉跟最小生成树差不多。需要分成k个联通块,让联通块之间距离最大就让联通块内距离尽可能小。一颗最小生成树是N-1条边,分成k个块需要切k-1条,就是一个n-k条边的最小生成森林,然后Kruskal中的下一条边(第n-k+2条)就是答案了。 #include<cstdio> #in 阅读全文
posted @ 2017-09-15 07:43 啊宸 阅读(241) 评论(4) 推荐(0)