249 2021. 03. 06 12:15:28 mraron Átvágás (nehéz) cpp14 Elfogadva 75/75 254ms 102912 KiB
#include<bits/stdc++.h>
using namespace std;

vector<int> adj[200001];

int dp[200001][2], st[200001];

void dfs(int x) {
	st[x]=1;
	int f=0;
	
	vector<int> lst;
	for(auto i:adj[x]) {
		if(st[i]) {
			continue ;
		}
		
		f++;
		
		dfs(i);
		lst.push_back(i);
	}
	
	if(0==f) {
		dp[x][1]=dp[x][0]=0;
		return ;
	}
	
	dp[x][1]=dp[x][0];
	
	int sum=0;
	for(int i:lst) {
		sum+=dp[i][1];
	}
	
	dp[x][0]=max(dp[x][0], sum);
	for(int i:lst) {
		dp[x][0]=max(dp[x][0], sum-dp[i][1]+dp[i][0]+1);
	}
	
	sort(lst.begin(), lst.end(), [&](int x, int y) -> bool {
		return dp[x][0]-dp[x][1]>dp[y][0]-dp[y][1];
	});

	dp[x][1]=max(dp[x][1], sum);
	if(f>1) {
		//~ cerr<<sum<<"\n";
		dp[x][1]=max(dp[x][1], dp[lst[0]][0]+dp[lst[1]][0]+2+sum-(dp[lst[0]][1]+dp[lst[1]][1]));
	}
	dp[x][1]=max(dp[x][1], dp[lst[0]][0]+1+sum-(dp[lst[0]][1]));
	
	//~ cerr<<x<<" "<<dp[x][0]<<" "<<dp[x][1]<<"\n";
}


int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin>>n;
	vector<int> deg(n+1);
	for(int i=1;i<n;++i) {
		int a,b;
		cin>>a>>b;
		deg[a]++;
		deg[b]++;
		adj[a].push_back(b);
		adj[b].push_back(a);
	}
	
	
	int res2=n-1-*max_element(deg.begin(), deg.end());
	
	dfs(1);
	int res1=n-1-dp[1][1];
	
	cout<<res1<<" "<<res2<<"\n";
	
	
	
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 75/75
1 Elfogadva 0/0 6ms 11184 KiB
2 Elfogadva 0/0 4ms 11228 KiB
3 Elfogadva 0/0 10ms 12292 KiB
4 Elfogadva 4/4 6ms 11256 KiB
5 Elfogadva 4/4 6ms 11264 KiB
6 Elfogadva 4/4 6ms 11260 KiB
7 Elfogadva 4/4 6ms 11400 KiB
8 Elfogadva 4/4 6ms 11280 KiB
9 Elfogadva 4/4 4ms 11416 KiB
10 Elfogadva 4/4 129ms 34516 KiB
11 Elfogadva 4/4 146ms 35228 KiB
12 Elfogadva 4/4 158ms 35100 KiB
13 Elfogadva 4/4 146ms 37488 KiB
14 Elfogadva 4/4 177ms 39120 KiB
15 Elfogadva 4/4 212ms 40672 KiB
16 Elfogadva 4/4 232ms 42860 KiB
17 Elfogadva 4/4 238ms 45416 KiB
18 Elfogadva 5/5 231ms 48768 KiB
19 Elfogadva 6/6 254ms 72412 KiB
20 Elfogadva 6/6 238ms 102912 KiB
21 Elfogadva 2/2 6ms 34100 KiB