Submission #1290670

#TimeUsernameProblemLanguageResultExecution timeMemory
1290670Gadir_2880Bosses (BOI16_bosses)C++20
0 / 100
17 ms572 KiB
//The Rumbling starts here: #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include<bits/stdc++.h> #define debug(n,m) cout<<"["<<#n<<"]->"<<n<<m #define int long long #define all(x) x.begin(),x.end() #define ai array<int,2> #define vv vector #define pb push_back using namespace std; const int N=3132352; const int mod=1e9+7; const int inf=(1ll<<55)-1; int a[N]; vector<int> tr[N]; int ans[N]; void dfs(int u,int p) { //debug(u,' '); int cos=1; for (int v:tr[u]) { if (v!=p) { dfs(v,u); } } for (int v:tr[u]) { if (v!=p) cos+=ans[v]; } ans[u]=cos; } void levi() { //#define tests int n; cin>>n; vector<vector<int>> d(n+1,vector<int>()); ai res={0,1}; for (int i=1;i<=n;i++) { int l; cin>>l; vector<int> v(l+1); for (int j=1;j<=l;j++) { cin>>v[j]; d[v[j]].pb(i); if (d[v[j]].size()>res[0]) res={(int)d[v[j]].size(),v[j]}; } } vector<int> vs(n+1,0); queue<int> q; vs[res[1]]=1; q.push(res[1]); while(!q.empty()) { int u=q.front(); q.pop(); vs[u]=1; for (int v:d[u]) { if (!vs[v]) { vs[v]=1; tr[u].pb(v); q.push(v); } } } dfs(res[1],-1); cout<<accumulate(ans+1,ans+n+1,0ll)<<'\n'; } int32_t main() { //freopen("input.in","r",stdin); ios_base::sync_with_stdio(0); cin.tie(0); int tt=1; #ifdef tests cin>>tt; #endif while(tt--) levi(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...