제출 #139857

#제출 시각아이디문제언어결과실행 시간메모리
1398572fat2codeBosses (BOI16_bosses)C++14
0 / 100
2 ms632 KiB
#include <bits/stdc++.h> #define ll long long #define all(a) (a).begin(), (a).end() #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #define sz() size() #define fr first #define sc second #define pb push_back #define er erase #define in insert #define pi pair<int,int> #define pii pair<pair<int,int>,int> #define mp make_pair //#define int long long #define rc(s) return cout<<s,0 #define rcc(s) cout<<s,exit(0) //#define cin fin //#define cout fout using namespace std; //ifstream fin("file.in"); //ofstream fout("file.out"); const int nmax=1e3+5; const int mod=1e9+7; const int mod1=998244353; int n,k,x,root,cnt,viz[5005],ans=1e9,dp[5005]; vector<int>cop[5005]; vector<int>nod[5005]; void DFS(int s){ viz[s]=1; for(auto it:nod[s]){ if(!viz[it]) DFS(it); } for(auto it:nod[s]){ dp[s]+=dp[it]; } dp[s]++; } int32_t main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n; for(int i=1;i<=n;i++){ cin >> k; for(int j=1;j<=k;j++){ cin >> x; cop[x].push_back(i); } } for(int i=1;i<=n;i++){ int cnt=0; queue<int>q; q.push(i); for(int j=1;j<=n;j++){ nod[j].clear(); viz[j]=0; } viz[i]=1; while(!q.empty()){ int x=q.front(); for(auto it:cop[x]){ if(!viz[it]){ viz[it]=1; q.push(it); nod[x].push_back(it); } } q.pop(); } if(cnt!=n-1) continue; for(int j=1;j<=n;j++){ viz[j]=0; dp[j]=0; } DFS(i); int sum=0; for(int j=1;j<=n;j++){ sum+=dp[j]; } ans=min(ans,sum); } rc(ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...