#include<bits/stdc++.h> using namespace std; int n,c,m,F[100001]; struct node{ int fa,d; vector ch; }a[100001]; void school(int k){ if(!a[k].ch.size()) return; int t=0; for(int i=0;i<a[k].ch.size();i++){ school(a[k].ch[i]); F[k]+=F[a[k].ch[i]]; t+=!F[a[k].ch[i]]?1:0; } F[k]+=(t+1)/2; } int main(){ cin>>n; if(!n){ cout<<0; return 0; } n--; while(n--){ cin>>c>>m; a[m].fa=c; a[m].d=a[c].d+1; a[c].ch.push_back(m); } school(1); cout<<F[1]; }

2 条评论

  • @ 2024-12-19 17:54:45

    #include<bits/stdc++.h> using namespace std; int main(){ for(int i=30;i<=2;i++) cout<<i<<' ';

    }

    • @ 2024-12-10 17:32:01

      #include<bits/stdc++.h> using namespace std; int n,c,m,F[100001]; struct node{ int fa,d; vector ch; }a[100001]; void school(int k){ if(!a[k].ch.size()) return; int t=0; for(int i=0;i<a[k].ch.size();i++){ school(a[k].ch[i]); F[k]+=F[a[k].ch[i]]; t+=!F[a[k].ch[i]]?1:0; } F[k]+=(t+1)/2; } int main(){ cin>>n; if(!n){ cout<<0; return 0; } n--; while(n--){ cin>>c>>m; a[m].fa=c; a[m].d=a[c].d+1; a[c].ch.push_back(m); } school(1); cout<<F[1]; }

      • 1