2722021-06-22 15:22:21mraronEnergiatakarékos ellenőrzéscpp14Elfogadva 100/100105ms48004 KiB
#include<bits/stdc++.h>
using namespace std;

int n;
vector<int> adj[100001];
array<long long,2> dp[100001];
int st[100001];
int sz[100001];


void dfs(int x) {
    st[x]=1;

    vector<int> gy;
    sz[x]=1;
    for(auto i:adj[x]) {
        if(0==st[i]) {
            dfs(i);
            sz[x]+=sz[i];
            gy.push_back(i);
        }
    }
    
    if(gy.empty()) {
        dp[x]={0,0};
        return ;
    }

    dp[x][0]=2*sz[x]-2;
    for(int c:gy) {
        dp[x][1]+=min(dp[c][0]+2*sz[c], dp[c][1]+8);
        dp[x][0]+=dp[c][0];
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    cin>>n;
    for(int i=1;i<n;++i) {
        int a,b;
        cin>>a>>b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    
    dfs(1);
    
    cout<<min(dp[1][0], dp[1][1])<<"\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva14ms6524 KiB
2Elfogadva85ms18820 KiB
subtask25/5
3Elfogadva45ms21484 KiB
4Elfogadva43ms22252 KiB
5Elfogadva54ms23024 KiB
6Elfogadva48ms23808 KiB
7Elfogadva46ms24568 KiB
subtask315/15
8Elfogadva3ms11532 KiB
9Elfogadva3ms11548 KiB
10Elfogadva3ms11540 KiB
11Elfogadva3ms11540 KiB
12Elfogadva3ms11552 KiB
13Elfogadva3ms11552 KiB
14Elfogadva3ms11556 KiB
subtask415/15
15Elfogadva3ms11560 KiB
16Elfogadva4ms11560 KiB
17Elfogadva3ms11568 KiB
18Elfogadva3ms11652 KiB
19Elfogadva3ms11580 KiB
20Elfogadva3ms11580 KiB
21Elfogadva8ms11584 KiB
subtask565/65
22Elfogadva75ms23940 KiB
23Elfogadva75ms25108 KiB
24Elfogadva82ms26252 KiB
25Elfogadva82ms27412 KiB
26Elfogadva86ms28568 KiB
27Elfogadva105ms43332 KiB
28Elfogadva96ms48004 KiB
29Elfogadva90ms39436 KiB
30Elfogadva86ms36532 KiB
31Elfogadva81ms34456 KiB
32Elfogadva79ms35328 KiB
33Elfogadva93ms36540 KiB
34Elfogadva61ms39708 KiB
35Elfogadva61ms40844 KiB
36Elfogadva71ms41396 KiB
37Elfogadva59ms42520 KiB
38Elfogadva59ms43388 KiB
39Elfogadva64ms44504 KiB
40Elfogadva75ms45576 KiB