답안 #265417

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
265417 2020-08-14T19:22:06 Z DS007 철인 이종 경기 (APIO18_duathlon) C++14
0 / 100
1000 ms 1048580 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int N = 1e5, M = 2e5;
vector<int> adj[N];
bool explored[N];
int n, m, dp[N][3], ans;

void dfs(int v, int p = -1) {
    //cerr << v << endl;
    explored[v] = true;
    int s2 = 0;
    dp[v][0] = 1;

    for (int i : adj[v]) {
        if (i != p){
            dfs(i, v);
            dp[v][0] += dp[i][0];
            dp[v][1] += dp[i][0] + dp[i][1];
            dp[v][2] += dp[i][1] * 2;
            s2 += dp[i][1];
        }
    }

    for (int i : adj[v]) {
        if (i != p) {
            s2 -= dp[i][1];
            dp[v][2] += s2 * dp[i][0] * 2;
            s2 += dp[i][1];
        }
    }

    ans += dp[v][2];
}

int solveTestCase() {
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        int u, v;
        cin >> u >> v;
        u--, v--;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    for (int i = 0; i < n; i++) {
        if (!explored[i])
            dfs(i);
        //cerr << dp[i][0] << " " << dp[i][1] << " " << dp[i][2] << endl;
    }

    cout << ans;
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    int t = 1;
    //cin >> t;
    while (t--)
        solveTestCase();
}


Compilation message

count_triplets.cpp: In function 'long long int solveTestCase()':
count_triplets.cpp:54:1: warning: no return statement in function returning non-void [-Wreturn-type]
   54 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Runtime error 606 ms 1048580 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 606 ms 1048580 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1124 ms 500088 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 5376 KB Execution killed with signal 7
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 67 ms 17896 KB Execution killed with signal 7
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 5504 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 66 ms 18040 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 606 ms 1048580 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 606 ms 1048580 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -