제출 #208060

#제출 시각아이디문제언어결과실행 시간메모리
208060BlerarghBosses (BOI16_bosses)C++17
100 / 100
1332 ms1144 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<ll,ll> ii; typedef pair<ld,ld> id; #define FOR(i, a, b) for(int i=(a); i<=(b); i++) #define ROF(i, a, b) for(int i=(a); i>=(b); i--) #define MEM(x, v) memset(x, v, sizeof(x)) #define SORT(x) sort((x).begin(), (x).end()) #define CMPSORT(x, cp) sort((x).begin(), (x).end(), cp) #define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define getchar_unlocked _getchar_nolock #define f first #define s second #define ins insert #define e emplace #define eb emplace_back #define ef emplace_front #define p push #define pf push_front #define pb push_back #define mp make_pair #define ub upper_bound #define lb lower_bound #define ft front #define bk back #define pp pop #define ppb pop_back #define ppf pop_front #define db cout<<"YEET\n"; #define ct(x) cout<<x<<'\n'; const ll MOD = 1e9+7; //998244353 const ll MX = 2e5+5; const ll INF = 1e18; const ld PI = acos((ld)-1); vector<ll> dfsadjlist[5005], adjlist[5005]; ll preorder[5005], idx=0, salary=0, cnt; ll n, k, x; ll minn=INF; bool visited[5005]; queue<ll> bfs; void dfs(ll node, ll parent){ preorder[node] = ++idx; for (auto edge : dfsadjlist[node]){ if (edge != parent) dfs(edge, node); } ll subtreesize = idx-preorder[node]+1; salary+=subtreesize; return; } int main(){ FAST cin >> n; FOR(i, 1, n){ cin >> k; FOR(j, 1, k){ cin >> x; adjlist[x].pb(i); } } FOR(i, 1, n){ MEM(visited, 0); FOR(j, 1, n) dfsadjlist[j].clear(); cnt=0; bfs.e(i); visited[i]=1; while (!bfs.empty()){ ll node = bfs.ft(); cnt++; bfs.pp(); for (auto edge : adjlist[node]){ if (visited[edge]) continue; bfs.e(edge); visited[edge]=1; dfsadjlist[node].pb(edge); } } if (cnt != n) continue; salary=0; dfs(i, i); minn=min(minn, salary); } cout << minn; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...