视频链接:E65 树形DP P3237 [HNOI2014] 米特运输_哔哩哔哩_bilibili
P3237 [HNOI2014] 米特运输 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
// 树形DP O(n) #include <bits/stdc++.h> #define int long long using namespace std;const int N=500005,mod=1e9+7; int n,a[N],s[N],ans; vector<int> e[N]; map<int,int> mp;void dfs(int u,int fa){if(u==1) s[u]=1;else if(fa==1) s[u]=e[fa].size();else s[u]=s[fa]*(e[fa].size()-1)%mod;for(int v:e[u]) if(v!=fa) dfs(v,u); } signed main(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1,u,v;i<n;i++){cin>>u>>v;e[u].push_back(v);e[v].push_back(u);}dfs(1,0);for(int i=1;i<=n;i++){++mp[a[i]*s[i]%mod];ans=max(ans,mp[a[i]*s[i]%mod]);}cout<<n-ans; }