#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,k,t[200005],hd,ans;
vector<int> v[200005];
struct f{
int tre,sum;
}ct[200005];
int dfs(int cnt,int id){
t[id]=1;
ct[id].sum=cnt;
ct[id].tre=1;
if(cnt>n) return 1;
for(int i=0;i<v[id].size();i++)
if(t[v[id][i]]==0)ct[id].tre+=dfs(cnt+1,v[id][i]);
return ct[id].tre;
}
bool cmp(f one,f two){
if(one.tre!=two.tre)return one.tre<two.tre;
return one.sum>two.sum;
}
signed main(){
cin>>n>>k;
for(int i=1;i<n;i++){
int a,b;
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
dfs(1,1);
hd=ct[1].tre;
sort(ct+1,ct+n+1,cmp);
for(int i=1;i<=k;i++){
ans=ans-ct[i].tre+ct[i].sum;
}
cout<<ans;
}
3 个赞
同感啊 ![]()
不过有头绪了
1 个赞
我也是啊
![]()