ABC333D 题解
题目传送门。
思路
以
对于一个非
但是如果要消除
而剩下的子节点应该是子树大小最大的。
再来手搓一组样例:
我们看到,如果要删除
但是删除
很明显,删除
所以这个样例答案是
#include<bits/stdc++.h>
using namespace std;
int head[600005],to[600005],from[600005],cnt,nxt[600005],son[600005];
void add(int u,int v){
to[++cnt]=v;
from[cnt]=u;
nxt[cnt]=head[u];
head[u]=cnt;
}
int n,u,v;
int dfs(int now,int fa){
int ans=0;
for(int i=head[now];i;i=nxt[i]){
if(to[i]!=fa)ans+=dfs(to[i],now);
}
son[now]=ans+1;
return ans+1;
}
int du=0,kiss[300005],tot;
int main(){
cin>>n;
for(int i=1;i<n;i++){
cin>>u>>v;
add(u,v);
add(v,u);
if(u==1||v==1)du++;
}
if(du==1||du==0){
cout<<1<<endl;
return 0;
}
dfs(1,0);
int ans=0,maxx=0;
for(int i=head[1];i;i=nxt[i]){
ans+=son[to[i]];
maxx=max(maxx,son[to[i]]);
}
cout<<ans-maxx+1;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧