1 条题解

  • 0
    @ 2026-5-5 16:28:27
    #include<bits/stdc++.h>
    using namespace std;
    int n,x,y,i,siz[200001];
    long long ans;
    vector<int>v[200001];
    void dfs(int x,int y){
    	siz[x]=1;
    	for(int i:v[x])if(i!=y)dfs(i,x),siz[x]+=siz[i];
    	ans+=siz[x];
    }
    void solve(int x,int y,long long c){
    	ans=max(ans,c);
    	for(int i:v[x])if(i!=y)solve(i,x,c+n-2*siz[i]);
    }
    int main(){
    	ios::sync_with_stdio(0);cin.tie(0);
    	cin>>n;
    	for(i=1;i<n;i++)cin>>x>>y,v[x].push_back(y),v[y].push_back(x);
    	dfs(1,0);solve(1,0,ans);
    	cout<<ans<<"\n";
    }
    
    • 1

    信息

    ID
    6863
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者