ログインしてください。
提出 #6860023
ソースコード 拡げる
from collections import deque
import sys
sys.setrecursionlimit(10**5)
N, M = map(int, input().split())
E = []
for i in range(M):
a, b, c = map(int, input().split())
E.append((c, a-1, b-1))
E.sort()
*p, = range(N)
def root(x):
if x == p[x]:
return x
p[x] = y = root(p[x])
return y
L = 2*N-1
G = [[]] * L
C = [0]*L
*lb, = range(N)
cur = N
s = 0
for c, a, b in E:
pa = root(a); pb = root(b)
if pa == pb:
continue
s += c
chds = [lb[pa], lb[pb]]
if pa < pb:
p[pb] = pa
lb[pa] = cur
else:
p[pa] = pb
lb[pb] = cur
C[cur] = c
G[cur] = chds
cur += 1
H = [0]*L
prv = [-1]*L
def dfs(v):
s = 1; heavy = -1; m = 0
for w in G[v]:
prv[w] = v
c = dfs(w)
if m < c:
heavy = w
m = c
s += c
H[v] = heavy
return s
dfs(L-1)
SS = []
D = []
LB = [0]*L
I = [0]*L
que = deque([(L-1, 0)])
while que:
v, d = que.popleft()
S = []
k = len(SS)
while v != -1:
I[v] = len(S)
S.append(v)
LB[v] = k
h = H[v]
for w in G[v]:
if h == w:
continue
que.append((w, d+1))
v = h
SS.append(S)
D.append(d)
def query(u, v):
lu = LB[u]; lv = LB[v]
dd = D[lv] - D[lu]
if dd < 0:
lu, lv = lv, lu
v, u = u, v
dd = -dd
for _ in range(dd):
v = prv[SS[lv][0]]
lv = LB[v]
while lu != lv:
u = prv[SS[lu][0]]
lu = LB[u]
v = prv[SS[lv][0]]
lv = LB[v]
return u if I[u] < I[v] else v
def gen():
Q = int(input())
for i in range(Q):
u, v = map(int, input().split())
w = query(u-1, v-1)
yield "%d\n" % (s - C[w])
ans = list(gen())
sys.stdout.writelines(ans)
提出情報
| 提出日時 | |
|---|---|
| 問題 | A - グラフ |
| ユーザ | yaketake08 |
| 言語 | Python (3.4.3) |
| 得点 | 700 |
| コード長 | 1932 Byte |
| 結果 | AC |
| 実行時間 | 2965 ms |
| メモリ | 82352 KiB |
ジャッジ結果
| セット名 | Sample | subtask1 | subtask2 | All | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 200 / 200 | 300 / 300 | 200 / 200 | ||||||||
| 結果 |
|
|
|
|
| セット名 | テストケース |
|---|---|
| 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 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample_1.txt | AC | 21 ms | 3316 KiB |
| sample_2.txt | AC | 21 ms | 3316 KiB |
| subtask_1_1.txt | AC | 26 ms | 3444 KiB |
| subtask_1_10.txt | AC | 1161 ms | 39996 KiB |
| subtask_1_11.txt | AC | 21 ms | 3316 KiB |
| subtask_1_2.txt | AC | 250 ms | 12628 KiB |
| subtask_1_3.txt | AC | 2383 ms | 74056 KiB |
| subtask_1_4.txt | AC | 57 ms | 6132 KiB |
| subtask_1_5.txt | AC | 63 ms | 6496 KiB |
| subtask_1_6.txt | AC | 558 ms | 22808 KiB |
| subtask_1_7.txt | AC | 2438 ms | 73964 KiB |
| subtask_1_8.txt | AC | 59 ms | 6124 KiB |
| subtask_1_9.txt | AC | 91 ms | 7408 KiB |
| subtask_2_1.txt | AC | 2432 ms | 74176 KiB |
| subtask_2_2.txt | AC | 2391 ms | 74204 KiB |
| subtask_2_3.txt | AC | 2458 ms | 74288 KiB |
| subtask_2_4.txt | AC | 2344 ms | 74300 KiB |
| subtask_2_5.txt | AC | 76 ms | 6568 KiB |
| subtask_2_6.txt | AC | 150 ms | 9504 KiB |
| subtask_2_7.txt | AC | 565 ms | 23068 KiB |
| subtask_2_8.txt | AC | 2401 ms | 74344 KiB |
| subtask_3_1.txt | AC | 2962 ms | 82324 KiB |
| subtask_3_2.txt | AC | 2965 ms | 82220 KiB |
| subtask_3_3.txt | AC | 650 ms | 14696 KiB |
| subtask_3_4.txt | AC | 659 ms | 16088 KiB |
| subtask_3_5.txt | AC | 1813 ms | 48212 KiB |
| subtask_3_6.txt | AC | 2361 ms | 65280 KiB |
| subtask_3_7.txt | AC | 2937 ms | 82276 KiB |
| subtask_3_8.txt | AC | 2912 ms | 82352 KiB |