AT上是25AC,9WA
#include<bits/stdc++.h>
using namespace std;
vector<int> G[2020];
int bian[2020][3];
bool vis[2020];
int k,n,ans=0x3f3f3f3f;
int cnt;
void dfs(int u,int d,int k){
if(d>k)return;
vis[u]=true;
for(int i=0;i<G[u].size();i++){
int v=G[u][i];
if(vis[v])continue;
dfs(v,d+1,k);
}
}
void dfss(int u,int d,int k){
if(d>k){
cnt++;
return;
}
for(int i=0;i<G[u].size();i++){
int v=G[u][i];
if(vis[v])continue;
vis[u]=true;
dfs(v,d+1,k);
}
}
int main(){
cin>>n>>k;
int u,v;
for(int i=1;i<n;i++){
cin>>bian[i][1]>>bian[i][2];
u=bian[i][1],v=bian[i][2];
G[u].push_back(v);
G[v].push_back(u);
}
if(k&1){
for(int i=1;i<n;i++){
int cnt=0;
dfss(bian[i][1],0,k>>1);
dfss(bian[i][2],0,k>>1);
ans=min(ans,cnt);
}
}else{
for(int i=1;i<=n;i++){
memset(vis,0,sizeof(vis));
dfs(i,0,k>>1);
int tt=0;
for(int i=1;i<=n;i++){
if(vis[i])tt++;
}
ans=min(ans,n-tt);
}
}
cout<<ans<<endl;
}