Submission #710245

#TimeUsernameProblemLanguageResultExecution timeMemory
710245vjudge1Duathlon (APIO18_duathlon)C++17
23 / 100
87 ms15632 KiB
/* Author : DeMen100ns (a.k.a Vo Khac Trieu) School : VNU-HCM High school for the Gifted fuck you adhoc */ #include <bits/stdc++.h> #define endl '\n' #define int long long using namespace std; const int N = 3e5 + 5; const long long INF = 1e18 + 7; const int MAXA = 1e9; const int B = sqrt(N) + 5; vector <int> a[N]; int sub[N]; bool f[N], g[N]; int ans = 0, n; void dfs(int root, int u, int par = 0){ f[u] = true; int sum = 0; for(int i : a[u]){ if (i == par) continue; dfs(root, i, u); ans += sum * sub[i]; sum += sub[i]; } ans += (sub[root] - sub[u]) * (sub[u] - 1); } void dfs_precal(int u, int par = 0){ sub[u] = 1; for(int i : a[u]){ if (i == par) continue; dfs_precal(i, u); sub[u] += sub[i]; } } bool F; int ct; void dfs_check(int u, int par, bool g[]){ ++ct; g[u] = true; for(int i : a[u]){ if (i == par) continue; if (g[i]){ F = false; continue; } dfs_check(i, u, g); } } void solve() { int m; cin >> n >> m; for(int i = 1; i <= m; ++i){ int u, v; cin >> u >> v; a[u].push_back(v); a[v].push_back(u); } for(int i = 1; i <= n; ++i){ if (!f[i]){ F = true; ct = 0; dfs_check(i, 0, g); if (F){ dfs_precal(i); dfs(i, i); } else { ans += ct * (ct - 1) * (ct - 2); dfs_check(i, 0, f); } } } cout << 2ll * ans; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("codeforces.inp","r",stdin); // freopen("codeforces.out","w",stdout); int t = 1; // cin >> t; while (t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...