#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int, int>
#define fi first
#define se second
const int mxN=1e5;
int n, m, dt=1, tin[mxN], low[mxN], sth, bccI, rt[2*mxN];
pii st[2*mxN];
ll sz1[2*mxN], sz2[mxN], ans;
vector<int> adj1[mxN], adj2[2*mxN];
set<int> bccs[mxN];
bool vis[2*mxN];
void dfs1(int u, int p) {
tin[u]=low[u]=dt++;
for(int v : adj1[u]) {
if(!tin[v]) {
int lsth=sth;
st[sth++]={u, v};
dfs1(v, u);
low[u]=min(low[v], low[u]);
if(low[v]>=tin[u]) {
while(sth>lsth) {
--sth;
bccs[bccI].insert(st[sth].fi);
bccs[bccI].insert(st[sth].se);
}
++bccI;
}
} else if(v!=p)
low[u]=min(tin[v], low[u]);
}
}
void dfs2(int u, int p) {
sz1[u]=u<n;
for(int v : adj2[u]) {
if(v==p)
continue;
rt[v]=rt[u];
dfs2(v, u);
sz1[u]+=sz1[v];
}
}
void dfs3(int u, int p) {
// cout << "d2 " << u << endl;
vis[u]=1;
ll n2=sz1[rt[u]]-adj2[u].size();
for(int v : adj2[u]) {
if(v==p)
continue;
dfs3(v, u);
n2-=sz1[v]-1;
if(u>=n)
ans+=2*(sz1[v]-sz2[v]+adj2[u].size()-2)*n2+2*(adj2[u].size()-2)*(sz1[v]-1)*n2;
}
if(u<n) {
n2=sz1[u]-sz2[u]+adj2[p].size()-2;
for(int v : adj2[u]) {
if(v==p)
continue;
n2-=sz1[v]-adj2[v].size()+1;
ans+=2*(sz1[v]-adj2[v].size()+1)*n2;
}
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
while(m--) {
int u, v;
cin >> u >> v, --u, --v;
adj1[u].push_back(v);
adj1[v].push_back(u);
}
for(int i=0; i<n; ++i)
if(!tin[i])
dfs1(i, -1);
for(int i=0; i<bccI; ++i) {
for(int j : bccs[i]) {
adj2[j].push_back(i+n);
adj2[i+n].push_back(j);
sz2[j]+=bccs[i].size()-1;
}
}
for(int i=0; i<bccI; ++i) {
ll bs=bccs[i].size();
if(!rt[i+n]) {
rt[i+n]=i+n;
dfs2(i+n, -1);
}
ans+=bs*(bs-1)*(bs-2)+2*(bs-1)*(bs-1)*(sz1[rt[i+n]]-bs)+bs*(bs-1)*(bs-1);
}
for(int i=0; i<n; ++i)
ans-=sz2[i]*sz2[i];
// cout << bccI << " " << ans << endl;
// for(int i=0; i<n; ++i)
// cout << sz2[i] << " ";
// cout << endl;
for(int i=0; i<bccI; ++i)
if(!vis[i+n])
dfs3(i+n, -1);
cout << ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
12024 KB |
Output is correct |
2 |
Correct |
15 ms |
12132 KB |
Output is correct |
3 |
Correct |
12 ms |
12208 KB |
Output is correct |
4 |
Correct |
12 ms |
12224 KB |
Output is correct |
5 |
Correct |
13 ms |
12260 KB |
Output is correct |
6 |
Correct |
10 ms |
12260 KB |
Output is correct |
7 |
Incorrect |
11 ms |
12320 KB |
Output isn't correct |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
12024 KB |
Output is correct |
2 |
Correct |
15 ms |
12132 KB |
Output is correct |
3 |
Correct |
12 ms |
12208 KB |
Output is correct |
4 |
Correct |
12 ms |
12224 KB |
Output is correct |
5 |
Correct |
13 ms |
12260 KB |
Output is correct |
6 |
Correct |
10 ms |
12260 KB |
Output is correct |
7 |
Incorrect |
11 ms |
12320 KB |
Output isn't correct |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
196 ms |
35168 KB |
Output is correct |
2 |
Correct |
210 ms |
35236 KB |
Output is correct |
3 |
Correct |
263 ms |
40688 KB |
Output is correct |
4 |
Correct |
237 ms |
40688 KB |
Output is correct |
5 |
Correct |
239 ms |
40688 KB |
Output is correct |
6 |
Correct |
243 ms |
42136 KB |
Output is correct |
7 |
Correct |
228 ms |
42136 KB |
Output is correct |
8 |
Correct |
238 ms |
42136 KB |
Output is correct |
9 |
Correct |
234 ms |
42136 KB |
Output is correct |
10 |
Correct |
237 ms |
42136 KB |
Output is correct |
11 |
Correct |
168 ms |
42136 KB |
Output is correct |
12 |
Correct |
169 ms |
42136 KB |
Output is correct |
13 |
Correct |
188 ms |
42136 KB |
Output is correct |
14 |
Correct |
133 ms |
42136 KB |
Output is correct |
15 |
Correct |
128 ms |
42136 KB |
Output is correct |
16 |
Correct |
154 ms |
42136 KB |
Output is correct |
17 |
Correct |
15 ms |
42136 KB |
Output is correct |
18 |
Correct |
15 ms |
42136 KB |
Output is correct |
19 |
Correct |
15 ms |
42136 KB |
Output is correct |
20 |
Correct |
17 ms |
42136 KB |
Output is correct |
21 |
Correct |
14 ms |
42136 KB |
Output is correct |
22 |
Correct |
18 ms |
42136 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
42136 KB |
Output is correct |
2 |
Correct |
14 ms |
42136 KB |
Output is correct |
3 |
Correct |
13 ms |
42136 KB |
Output is correct |
4 |
Correct |
16 ms |
42136 KB |
Output is correct |
5 |
Correct |
13 ms |
42136 KB |
Output is correct |
6 |
Correct |
14 ms |
42136 KB |
Output is correct |
7 |
Correct |
13 ms |
42136 KB |
Output is correct |
8 |
Correct |
17 ms |
42136 KB |
Output is correct |
9 |
Correct |
13 ms |
42136 KB |
Output is correct |
10 |
Correct |
16 ms |
42136 KB |
Output is correct |
11 |
Correct |
12 ms |
42136 KB |
Output is correct |
12 |
Correct |
14 ms |
42136 KB |
Output is correct |
13 |
Correct |
12 ms |
42136 KB |
Output is correct |
14 |
Correct |
15 ms |
42136 KB |
Output is correct |
15 |
Correct |
13 ms |
42136 KB |
Output is correct |
16 |
Correct |
12 ms |
42136 KB |
Output is correct |
17 |
Correct |
15 ms |
42136 KB |
Output is correct |
18 |
Correct |
15 ms |
42136 KB |
Output is correct |
19 |
Correct |
11 ms |
42136 KB |
Output is correct |
20 |
Correct |
12 ms |
42136 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
251 ms |
42136 KB |
Output is correct |
2 |
Correct |
237 ms |
42136 KB |
Output is correct |
3 |
Correct |
239 ms |
42136 KB |
Output is correct |
4 |
Correct |
227 ms |
42136 KB |
Output is correct |
5 |
Correct |
281 ms |
42136 KB |
Output is correct |
6 |
Correct |
296 ms |
54536 KB |
Output is correct |
7 |
Correct |
265 ms |
54536 KB |
Output is correct |
8 |
Correct |
294 ms |
54536 KB |
Output is correct |
9 |
Correct |
241 ms |
54536 KB |
Output is correct |
10 |
Correct |
231 ms |
54536 KB |
Output is correct |
11 |
Correct |
237 ms |
54536 KB |
Output is correct |
12 |
Correct |
218 ms |
54536 KB |
Output is correct |
13 |
Correct |
247 ms |
54536 KB |
Output is correct |
14 |
Correct |
216 ms |
54536 KB |
Output is correct |
15 |
Correct |
266 ms |
54536 KB |
Output is correct |
16 |
Correct |
182 ms |
54536 KB |
Output is correct |
17 |
Correct |
267 ms |
54536 KB |
Output is correct |
18 |
Correct |
193 ms |
54536 KB |
Output is correct |
19 |
Correct |
191 ms |
54536 KB |
Output is correct |
20 |
Correct |
199 ms |
54536 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
15 ms |
54536 KB |
Output is correct |
2 |
Correct |
13 ms |
54536 KB |
Output is correct |
3 |
Incorrect |
14 ms |
54536 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
275 ms |
54536 KB |
Output is correct |
2 |
Correct |
265 ms |
54536 KB |
Output is correct |
3 |
Incorrect |
262 ms |
54536 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
12024 KB |
Output is correct |
2 |
Correct |
15 ms |
12132 KB |
Output is correct |
3 |
Correct |
12 ms |
12208 KB |
Output is correct |
4 |
Correct |
12 ms |
12224 KB |
Output is correct |
5 |
Correct |
13 ms |
12260 KB |
Output is correct |
6 |
Correct |
10 ms |
12260 KB |
Output is correct |
7 |
Incorrect |
11 ms |
12320 KB |
Output isn't correct |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
12024 KB |
Output is correct |
2 |
Correct |
15 ms |
12132 KB |
Output is correct |
3 |
Correct |
12 ms |
12208 KB |
Output is correct |
4 |
Correct |
12 ms |
12224 KB |
Output is correct |
5 |
Correct |
13 ms |
12260 KB |
Output is correct |
6 |
Correct |
10 ms |
12260 KB |
Output is correct |
7 |
Incorrect |
11 ms |
12320 KB |
Output isn't correct |
8 |
Halted |
0 ms |
0 KB |
- |