摘要: 思维题,套路题。 本来想在学完树形dp,开始做数据结构前~~刷几道水题~~愉悦一下身心,结果tm直接匹配了一道不用树形dp十分有意思的题 思路:考虑题目的转化:将删除的边数最小转化为留下的权值最大,用kruskal的思想加边,如果两点都是敌人直接切,如果一方是敌人,先不管,将另一方感染为敌人。这也是 阅读全文
posted @ 2018-09-13 21:06 Splitor 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 树形dp碾压标算 这道题目我写了60分的暴力(N^2 k),没有优化,只是说一说树形dp相关。 这道题我们可以转化一下,我们可以考虑每一个点对答案的贡献。这道题可以转化为以该点为根的树中包含根的连通块,且其中有k个点大于等于根的危险度的方案数。这里“等于”有一定的问题,就是同一种连通块可能会被其他的 阅读全文
posted @ 2018-09-13 21:01 Splitor 阅读(225) 评论(0) 推荐(0) 编辑
摘要: fij表示在dfs序序列上做了前i个点,已经选择了j个人的最大权值和。 那么如果这个点选fij− fi+1,j+1 如果不选fij− fi+sizei,j(表示跳过子树转移) code: for(i=1;i 阅读全文
posted @ 2018-09-13 20:50 Splitor 阅读(234) 评论(0) 推荐(0) 编辑