Submission #710190

#TimeUsernameProblemLanguageResultExecution timeMemory
710190vjudge1철인 이종 경기 (APIO18_duathlon)C++17
23 / 100
1102 ms1048576 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]; 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]; } } 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]){ dfs_precal(i); dfs(i, i); } } 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...