虚树
SC.ldxcaicai
我很菜=_=
展开
-
2018.09.25 bzoj3572: [Hnoi2014]世界树(虚树+树形dp)
传送门 虚树入门题? 好难啊。 在学习别人的写法之后终于过了。 这道题dp方程很好想。 主要是不好写。 简要说说思路吧。 显然最优值只能够从子树和父亲转移过来。 于是我们先dfs一遍用儿子更新父亲,然后再dfs一遍用父亲更新儿子。 这样搞完之后可以统计出每个点所属的管辖点。 然后统计。 但这样单次跑是O(n)O(n)O(n)的不优秀。 考虑优化算法的时间复杂度。 注意到所有管辖点加起来只有O(n)...原创 2018-09-25 20:02:32 · 334 阅读 · 0 评论 -
2018.09.25 bzoj2286: [Sdoi2011]消耗战(虚树+树形dp)
传送门 又一道虚树入门题。 这个dp更简单啊。 直接记录每个点到1的距离,简单转移就行了。 代码: #include<bits/stdc++.h> #define N 250005 #define ll long long #define min(a,b) (a<b?a:b) using namespace std; inline ll read(){ ll ans=0; c...原创 2018-09-25 21:48:51 · 176 阅读 · 0 评论 -
bzoj3611: [Heoi2014]大工程(虚树+树形dp)
传送门 思路:考虑每次怎么做O(n)dpO(n)dpO(n)dp,直接对于每个点对的lcalcalca考虑贡献即可。 因此建出虚树然后同样对于lcalcalca考虑贡献。 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int rlen=1<<18|1; inlin...原创 2019-06-26 17:08:09 · 188 阅读 · 0 评论