![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
启发式合并
ordinarv
努力才是人生的常态
展开
-
CF600E(dsu on tree)
题意: 给你一棵n个点的有根树,以1为根,每个点有一个颜色。对于一颗以v为根的子树,其出现次数最多的颜色,为dominating顶点v这个子树的颜色,可能有多个这样的颜色。求以n个顶点分别为根的子树中,dominating 的颜色和。 思路: 一个很好想的暴力思路就是,dfs n个点,统计该点为根的子树中出现的颜色次数。时间、空间都是O(N^2)的。 我们可以每次统计完一个点后清空cnt数组...原创 2019-11-21 16:55:42 · 254 阅读 · 0 评论 -
Gym-101741C Cover the Paths(LCA贪心)
传送门 题意:给你一颗n个结点的无向树,然后给你m条路径(a, b),让你求最小的点集,满足这些路径上至少有一点在这个点集上。输出点集的大小和点。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e5+5; int n,m; vector<int>...原创 2019-10-25 16:24:27 · 272 阅读 · 1 评论 -
「BZOJ1483」[HNOI2009] 梦幻布丁 (启发式合并)
传送门 这题没有数据范围可怎么写啊! #include<bits/stdc++.h> using namespace std; typedef long long ll; const ll setoff = 1e9; const int maxn = 1e6+5; vector<int> v[maxn]; int f[maxn],c[maxn],ans,n,m;//...原创 2019-10-22 22:54:20 · 149 阅读 · 0 评论