제출 #260875

#제출 시각아이디문제언어결과실행 시간메모리
260875emanIaicepsa철인 이종 경기 (APIO18_duathlon)C++14
23 / 100
1126 ms1048580 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<ll,ll> #define vi vector<int> #define pb emplace_back #define fi first #define se second #define all(n) (n).begin(),(n).end() #define mem(n,m) memset(n,m,sizeof(n)) #define IOS ios::sync_with_stdio(0), cin.tie(0) #define dbg(...) cerr<<#__VA_ARGS__<<" = ";_do(__VA_ARGS__); template<typename A> void _do(A x){cerr<<x<<'\n';} template<typename A,typename ...B> void _do(A x,B ...y){cerr<<x<<", ";_do(y...);} ll n,m; vi E[100005]; ll siz[100005], ans=0; bool vis[100005]; void dfs(int x,int p){ vis[x] = 1; siz[x] = 1; for(auto i:E[x]){ if(i==p) continue; dfs(i,x); siz[x] += siz[i]; } } void dfs2(int x,int p,int anc){ vis[x] = 1; for(auto i:E[x]){ if(i==p) continue; dfs2(i,x,anc); ans += siz[i] * (siz[anc]-siz[i]-1); } ans += (siz[x]-1) * (siz[anc]-siz[x]); } signed main(){ IOS; cin>>n>>m; for(int i=1,a,b;i<=m;i++){ cin>>a>>b; E[a].pb(b); E[b].pb(a); } for(int i=1;i<=n;i++) if(!vis[i]) dfs(i,0); mem(vis,0); for(int i=1;i<=n;i++) if(!vis[i]) dfs2(i,0,i); cout<<ans<<'\n'; }
#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...