提出 #32438989
ソースコード 拡げる
def main(N, AB):
dp = dict()
def route(a, b, wrongway=None):
'''aからbまでに通る道の数を返す
wrongwayからaに移動したことを示す。
'''
if (a, b, wrongway) in dp:
return dp[(a, b, wrongway)]
if b in net[a]:
ret = 1
else:
if wrongway is not None:
available = net[a].copy()
available.remove(wrongway)
else:
available = net[a]
for way in available:
ret = 1 + route(way, b, a)
if ret != 0:
break
else:
ret = -1
dp[(a, b, wrongway)] = ret
return ret
# 各都市から見て繋がっている都市のリスト
net = {i: list() for i in range(1, N+1)}
for a, b in AB:
net[a].append(b)
net[b].append(a)
# print(net)
# 末端の都市を抽出
terminals = [k for k, v in net.items() if len(v) == 1]
# 1つの末端から、最大経路の末端を探す
one_end = None
w_routes = 0
for term in terminals[1:]:
r = route(terminals[0], term)
if r > w_routes:
w_routes = r
one_end = term
# 見つけた末端から最大経路の末端を探す
terminals.remove(one_end)
return max([route(one_end, term) for term in terminals]) + 1
N = int(input())
AB = [list(map(int, input().split(" "))) for _ in range(N-1)]
print(main(N, AB))
提出情報
| 提出日時 | |
|---|---|
| 問題 | 003 - Longest Circular Road(★4) |
| ユーザ | arakaki_tokyo |
| 言語 | PyPy3 (7.3.0) |
| 得点 | 0 |
| コード長 | 1652 Byte |
| 結果 | RE |
| 実行時間 | 2223 ms |
| メモリ | 472084 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 0 / 4 | ||||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample_01.txt | AC | 66 ms | 62232 KiB |
| sample_02.txt | AC | 52 ms | 62220 KiB |
| sample_03.txt | AC | 52 ms | 62356 KiB |
| sample_04.txt | AC | 55 ms | 63652 KiB |
| subtask_1_01.txt | AC | 70 ms | 73980 KiB |
| subtask_1_02.txt | AC | 84 ms | 74828 KiB |
| subtask_1_03.txt | AC | 102 ms | 77508 KiB |
| subtask_1_04.txt | TLE | 2218 ms | 387212 KiB |
| subtask_1_05.txt | TLE | 2218 ms | 411968 KiB |
| subtask_1_06.txt | TLE | 2219 ms | 383536 KiB |
| subtask_1_07.txt | AC | 218 ms | 87000 KiB |
| subtask_1_08.txt | TLE | 2221 ms | 453768 KiB |
| subtask_1_09.txt | TLE | 2223 ms | 472084 KiB |
| subtask_1_10.txt | AC | 415 ms | 133792 KiB |
| subtask_1_11.txt | AC | 55 ms | 62136 KiB |
| subtask_1_12.txt | TLE | 2218 ms | 405400 KiB |
| subtask_1_13.txt | TLE | 2221 ms | 434540 KiB |
| subtask_1_14.txt | AC | 61 ms | 62060 KiB |
| subtask_1_15.txt | TLE | 2221 ms | 453232 KiB |
| subtask_1_16.txt | TLE | 2216 ms | 404976 KiB |
| subtask_1_17.txt | TLE | 2219 ms | 391940 KiB |
| subtask_1_18.txt | TLE | 2218 ms | 332600 KiB |
| subtask_1_19.txt | TLE | 2220 ms | 392816 KiB |
| subtask_1_20.txt | TLE | 2220 ms | 415132 KiB |
| subtask_1_21.txt | RE | 298 ms | 113580 KiB |
| subtask_1_22.txt | TLE | 2210 ms | 145652 KiB |