CF1593E-Gardener-and-Tree-题解
题意:
给出一个
思路:
设
当
初始时所有叶子的
code:
#include<iostream> #include<cstdio> #include<queue> #include<cstring> using namespace std; const int N=4e5+10; int t,n,k,cnt[N],d[N],ans; bool f[N]; vector<int> g[N]; queue<int> q; int main() { scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); ans=0; memset(f,0,sizeof(f)); memset(d,0,sizeof(d)); memset(cnt,0,sizeof(cnt)); for(int i=1;i<=n;i++)g[i].clear(); for(int i=1,x,y;i<n;i++) { scanf("%d%d",&x,&y); g[x].push_back(y); g[y].push_back(x); d[x]++,d[y]++; } if(k==0) { printf("%d\n",n); continue; } for(int i=1;i<=n;i++)if(d[i]==1)q.push(i),f[i]=cnt[i]=1; while(!q.empty()) { int t=q.front(); q.pop(); for(int i=0;i<g[t].size();i++) { int v=g[t][i]; if(f[v])continue; d[v]--; if(d[v]==1) { f[v]=1; cnt[v]=cnt[t]+1; q.push(v); } } } for(int i=1;i<=n;i++)if(cnt[i]>k)ans++; printf("%d\n",ans); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下