随笔分类 - 树DP
摘要:我是不知道我当时咋想的。。。 不知道自己在想啥, 题解: 直接DFS找连通块的数量 N 然后答案是N-1 #include <bits/stdc++.h> using namespace std; int n,x[101],y[101],vis[101]; void dfs(int i) { vis
阅读全文
摘要:题解: 显然 我们在越高的地方增加越好,然后注意这个最大值不能经过这里, 一次dfs找最大值, 一次dfs处理每个点的min 然后最后一次dfs计算答案 依次往下找就行了 #include<bits/stdc++.h> #define rep(i,a,n) for(int i=a;i<=n;++i)
阅读全文
摘要:题意 给一棵树,1是根; 然后树上有M个资源站,现在要求你断开一些边,让根连不到所有的资源站, 考虑显然o(n)的树DP 但是有M次询问 复杂度nm 然后我们发现ki的加和比较小 然后建立虚树,每次只处理ki个点就行了 然后虚树怎么建立,我们发现只需要包含这ki个点,和他们的lca就可以了; 以下内
阅读全文
摘要:链接 :http://codeforces.com/contest/1388/problem/C 题意: 有若干个人,树根为1,从根开始往下走,心情可能会变坏,坏心情不可能变好, 每个城市有个happyness值,问你这个图成不成立, 题解 :dfs树一下,因为dfs树是从下向上回溯,所以反过来,考
阅读全文