제출 #1172884

#제출 시각아이디문제언어결과실행 시간메모리
1172884escobrand철인 이종 경기 (APIO18_duathlon)C++20
0 / 100
33 ms20292 KiB
#include <bits/stdc++.h>

using namespace std;
#define all(v) v.begin(),v.end()
#define eb push_back
#define ll long long 
#define fi first
#define se second
int t,n,i,m,u,v;
const int maxn = 2e5 + 10;
bool c[maxn],e[maxn];
vector<pair<int,int>> a[maxn];
ll sum[maxn],s[maxn],tim[maxn],ans,bo[maxn],tim_bo[maxn],tmp;
int de[maxn];
void pre(int i,int p)
{
  c[i] = 1;
  s[i] = 1;
  de[i] = de[p]+1;
  for(auto [k,id] : a[i])
  {
    if(k == p)continue;
    if(c[k])
    {
      if(de[k] < de[i])
      {
        e[id] = 1;
        // cout<<i<<' '<<k<<'\n';
      }
    }
    else
    {
      pre(k,i);
      s[i] += s[k];
      sum[i] += sum[k];
      tim[i] += tim[k];
    }
  }
  sum[i] -= tim[i];
  tim[i] -= tim_bo[i];
  sum[i] -= n * tim_bo[i] - bo[i];
  
  ans += sum[i];
  // cout<<i<<' '<<sum[i]<<'\n';
  sum[i] += s[i]-1;
  for(auto [k,id] : a[i])
  {
    if(k == p)continue;
    if(e[id] && de[k] < de[i])
    {
      tim[i]++;
      sum[i]+= n - s[i];
      tim_bo[k]++;
      bo[k] += s[i] + de[i] - de[k];
      tmp = de[i] - de[k];
      ans += (tmp-1)*tmp / 2;
    }
  }
}



int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    cin>>n>>m;
    
    for(i = 1;i<=m;i++)
    {
      cin>>u>>v;
      a[u].eb({v,i});
      a[v].eb({u,i});
    }
    
    pre(1,0);
    // for(i = 1;i<=n;i++)cout<<tim[i]<<' ';
    cout<<ans * 2;
    
    return 0;
}
#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...