Submission #2197787
Source Code Expand
#include <bits/stdc++.h> using namespace std; const int N = 4005; const int M = 400005; int n, m, q; int lab[N]; vector < pair<int, int> > g[N]; int par[N][13], wei[N][13], dep[N]; long long tot; struct edge { int u; int v; int w; bool operator < (const edge &other) const { return w < other.w; } } ed[M]; int anc(int p) { return p == lab[p] ? p : lab[p] = anc(lab[p]); } void join(int p, int q) { lab[p] = q; } // p = anc(p), q = anc(q) void dfs(int u) { for (auto &e : g[u]) { int v = e.second, w = e.first; if (v == par[u][0]) continue; dep[v] = dep[u] + 1; par[v][0] = u; wei[v][0] = w; dfs(v); } } int lca(int u, int v) { if (dep[u] < dep[v]) swap(u, v); for (int i = 12; i >= 0; --i) if (dep[par[u][i]] >= dep[v]) u = par[u][i]; for (int i = 12; i >= 0; --i) if (par[u][i] != par[v][i]) u = par[u][i], v = par[v][i]; return u == v ? u : par[u][0]; } int get_max(int u, int x) { int ret = 0; for (int i = 12; i >= 0; --i) { if (dep[par[u][i]] >= dep[x]) { ret = max(ret, wei[u][i]); u = par[u][i]; } } return ret; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> m; for (int i = 0; i < m; ++i) { cin >> ed[i].u >> ed[i].v >> ed[i].w; } sort(ed, ed + m); for (int i = 1; i <= n; ++i) lab[i] = i; for (int i = 0; i < m; ++i) { int u = anc(ed[i].u); int v = anc(ed[i].v); if (u == v) continue; join(u, v); g[ed[i].u].push_back(make_pair(ed[i].w, ed[i].v)); g[ed[i].v].push_back(make_pair(ed[i].w, ed[i].u)); tot += ed[i].w; } par[1][0] = 1; dfs(1); for (int j = 1; j <= 12; ++j) { for (int i = 1; i <= n; ++i) { par[i][j] = par[par[i][j - 1]][j - 1]; wei[i][j] = max(wei[i][j - 1], wei[par[i][j - 1]][j - 1]); } } cin >> q; while(q--) { int u, v; cin >> u >> v; int x = lca(u, v); int mx = max(get_max(u, x), get_max(v, x)); printf("%lld\n", tot - mx); } }
Submission Info
Submission Time | |
---|---|
Task | A - Graph |
User | cheater2k |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1977 Byte |
Status | AC |
Exec Time | 189 ms |
Memory | 6784 KB |
Judge Result
Set Name | Sample | subtask1 | subtask2 | All | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 200 / 200 | 300 / 300 | 200 / 200 | ||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_1.txt, sample_2.txt |
subtask1 | sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt |
subtask2 | sample_1.txt, sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt |
All | sample_1.txt, sample_2.txt, sample_1.txt, sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_3_1.txt, subtask_3_2.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_1.txt | AC | 1 ms | 384 KB |
sample_2.txt | AC | 1 ms | 384 KB |
subtask_1_1.txt | AC | 2 ms | 384 KB |
subtask_1_10.txt | AC | 67 ms | 4992 KB |
subtask_1_11.txt | AC | 1 ms | 384 KB |
subtask_1_2.txt | AC | 15 ms | 1408 KB |
subtask_1_3.txt | AC | 131 ms | 5632 KB |
subtask_1_4.txt | AC | 3 ms | 1024 KB |
subtask_1_5.txt | AC | 4 ms | 1024 KB |
subtask_1_6.txt | AC | 34 ms | 2176 KB |
subtask_1_7.txt | AC | 130 ms | 5632 KB |
subtask_1_8.txt | AC | 3 ms | 1024 KB |
subtask_1_9.txt | AC | 5 ms | 1024 KB |
subtask_2_1.txt | AC | 133 ms | 5632 KB |
subtask_2_2.txt | AC | 132 ms | 5632 KB |
subtask_2_3.txt | AC | 132 ms | 5632 KB |
subtask_2_4.txt | AC | 132 ms | 5632 KB |
subtask_2_5.txt | AC | 5 ms | 1024 KB |
subtask_2_6.txt | AC | 10 ms | 1280 KB |
subtask_2_7.txt | AC | 36 ms | 2176 KB |
subtask_2_8.txt | AC | 132 ms | 5632 KB |
subtask_3_1.txt | AC | 183 ms | 6784 KB |
subtask_3_2.txt | AC | 182 ms | 6784 KB |
subtask_3_3.txt | AC | 53 ms | 2304 KB |
subtask_3_4.txt | AC | 57 ms | 2304 KB |
subtask_3_5.txt | AC | 118 ms | 6144 KB |
subtask_3_6.txt | AC | 151 ms | 6144 KB |
subtask_3_7.txt | AC | 189 ms | 6784 KB |
subtask_3_8.txt | AC | 184 ms | 6784 KB |