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
AC × 2
AC × 12
AC × 21
AC × 31
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