E. Lomsat gelral
题意
统计每棵子树的最多的颜色节点的和是说少。
解题思路
最近刚学的 dsu on tree 这道题刚好是一道模板题。我们通过一次dfs搜索后,标记出每个节点的重儿子,然后遍历的时候先遍历亲儿子再遍历重儿子。
附加一个大佬的博客和B站的视频讲解吧。
博客链接
视频连接
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int mx=200100;
int n;
int cnt[mx],col[mx];
bool vis[mx];
ll ans[mx];
int si[mx],son[mx];
vector<int> ve[mx];
ll sum,ma;
void dfs(int u,int fa){
si[u]=1;
for(int v:ve[u