제출 #958520

#제출 시각아이디문제언어결과실행 시간메모리
958520Cyber_Wolf철인 이종 경기 (APIO18_duathlon)C++17
0 / 100
57 ms37108 KiB
#include <bits/stdc++.h> using namespace std; #define lg long long #define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); const lg N = 2e5+5; vector<lg> adj[N],adj2[N], p, comps[N]; lg low[N], ans, n, m, artic[N], tin[N], tmp, vis[N], id[N], ids, sz[N]; void dfs(lg src, lg par = -1) { low[src] = tin[src] = ++tmp; p.push_back(src); sz[src] = 1; for(auto it : adj[src]) { if(it == par) { continue; } if(tin[it]) { low[src] = min(low[src], tin[it]); continue; } dfs(it, src); sz[src] += sz[it]; low[src] = min(low[src], low[it]); if(low[it] >= tin[src]) { artic[src] = (tin[src] > 1 || tin[it] > 2); id[src] = ++ids; comps[id[src]].push_back(src); while(comps[id[src]].back() != it) { id[p.back()] = id[src]; comps[id[src]].push_back(p.back()); p.pop_back(); } } } } void dfs2(lg src) { vis[src] = true; for(auto it : adj[src]) { if(vis[it]) continue; dfs2(it); } if(artic[src]) { lg s = comps[id[src]].size(); for(auto it : comps[id[src]]) { for(auto it2 : adj[it]) { if(artic[it2]) s++; } } ans -= (n-s)*(s-1)*(s-2); // c up, s,f down ans -= (n-s)*(n-s-1)*(s-1); // c down, s,f up ans -= (n-sz[src])*(sz[src]-1)*4; // artic -> s, f } } int main() { fastio; cin >> n >> m; ans = n*(n-1)*(n-2); for(int i = 0; i < m; i++) { lg u, v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } dfs(1); dfs2(1); cout << ans << '\n'; return 0; } /* 123 c 124 c 134 c 132 x 142 x 143 x */
#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...