# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
747724 | 2023-05-24T15:03:01 Z | 1075508020060209tc | 철인 이종 경기 (APIO18_duathlon) | C++14 | 154 ms | 47180 KB |
#include <bits/stdc++.h> using namespace std; #define int long long int n;int m; vector<int>e[300005]; vector<int>tr[300005]; vector<int>bke[300005]; vector<int>dwe[300005]; int sz[300005];int vis[300005];int dph[300005];int fa[300005]; int ans; void fdfs(int nw){ vis[nw]=1; sz[nw]=1; for(int i=0;i<e[nw].size();i++){ int v=e[nw][i]; if(vis[v]==0){ fa[v]=nw; dph[v]=dph[nw]+1; tr[nw].push_back(v); fdfs(v); sz[nw]+=sz[v]; continue; } if(v==fa[nw]){continue;} if(dph[v]<dph[nw]){ bke[nw].push_back(v); dwe[v].push_back(nw); } } } void dfs1(int nw,int rtsz){ ans+=(rtsz-sz[nw])*(sz[nw]-1); for(int i=0;i<tr[nw].size();i++){ int v=tr[nw][i]; dfs1(v,rtsz); ans+=sz[v]*(rtsz-1-sz[v]); } } int bv; int dfs2(int nw,int rtsz){ int ret=0; for(int i=0;i<tr[nw].size();i++){ int v=tr[nw][i]; int vl=dfs2(v,rtsz); if(vl){ ret=vl; ans+=(sz[v]-vl)*2; } } if(bke[nw].size()){ ret=sz[nw]; bv=bke[nw][0]; } if(dwe[nw].size()){ ret=0; } if(ret){ ans+=(rtsz-sz[bv]+1)*(dph[nw]-dph[bv]-1)*2; } //cout<<nw<<" "<<ret<<endl; return ret; } signed main() { cin>>n>>m; for(int i=1;i<=m;i++){ int a;int b; cin>>a>>b; e[a].push_back(b); e[b].push_back(a); } ans=0; vector<int>rt; for(int i=1;i<=n;i++){ if(vis[i]==0){ rt.push_back(i); fdfs(i); } } for(int i=0;i<rt.size();i++){ dfs1(rt[i],sz[rt[i]]); dfs2(rt[i],sz[rt[i]]); } cout<<ans<<endl; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 14 ms | 28504 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 14 ms | 28504 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 139 ms | 47180 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 18 ms | 28508 KB | Output is correct |
2 | Correct | 18 ms | 28540 KB | Output is correct |
3 | Correct | 17 ms | 28508 KB | Output is correct |
4 | Correct | 16 ms | 28656 KB | Output is correct |
5 | Correct | 19 ms | 28524 KB | Output is correct |
6 | Correct | 17 ms | 28596 KB | Output is correct |
7 | Correct | 20 ms | 28648 KB | Output is correct |
8 | Correct | 18 ms | 28516 KB | Output is correct |
9 | Correct | 16 ms | 28500 KB | Output is correct |
10 | Correct | 16 ms | 28500 KB | Output is correct |
11 | Correct | 21 ms | 28536 KB | Output is correct |
12 | Correct | 16 ms | 28496 KB | Output is correct |
13 | Correct | 19 ms | 28500 KB | Output is correct |
14 | Correct | 18 ms | 28500 KB | Output is correct |
15 | Correct | 18 ms | 28492 KB | Output is correct |
16 | Correct | 15 ms | 28544 KB | Output is correct |
17 | Correct | 16 ms | 28500 KB | Output is correct |
18 | Correct | 18 ms | 28488 KB | Output is correct |
19 | Correct | 16 ms | 28580 KB | Output is correct |
20 | Correct | 19 ms | 28584 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 122 ms | 37232 KB | Output is correct |
2 | Correct | 122 ms | 37232 KB | Output is correct |
3 | Correct | 128 ms | 37196 KB | Output is correct |
4 | Correct | 125 ms | 37216 KB | Output is correct |
5 | Correct | 130 ms | 37196 KB | Output is correct |
6 | Correct | 153 ms | 42968 KB | Output is correct |
7 | Correct | 141 ms | 40904 KB | Output is correct |
8 | Correct | 139 ms | 39868 KB | Output is correct |
9 | Correct | 122 ms | 39056 KB | Output is correct |
10 | Correct | 123 ms | 37196 KB | Output is correct |
11 | Correct | 141 ms | 37572 KB | Output is correct |
12 | Correct | 145 ms | 37664 KB | Output is correct |
13 | Correct | 137 ms | 37580 KB | Output is correct |
14 | Correct | 121 ms | 37344 KB | Output is correct |
15 | Correct | 116 ms | 37208 KB | Output is correct |
16 | Correct | 71 ms | 36104 KB | Output is correct |
17 | Correct | 104 ms | 37436 KB | Output is correct |
18 | Correct | 98 ms | 37016 KB | Output is correct |
19 | Correct | 90 ms | 37360 KB | Output is correct |
20 | Correct | 95 ms | 37020 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 23 ms | 28668 KB | Output is correct |
2 | Correct | 19 ms | 28508 KB | Output is correct |
3 | Incorrect | 16 ms | 28500 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 136 ms | 37152 KB | Output is correct |
2 | Correct | 132 ms | 37324 KB | Output is correct |
3 | Incorrect | 154 ms | 38648 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 14 ms | 28504 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 14 ms | 28504 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |