結果

問題 No.845 最長の切符
ユーザー ntuda
提出日時 2025-06-23 21:18:34
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 387 ms / 3,000 ms
コード長 688 bytes
コンパイル時間 451 ms
コンパイル使用メモリ 82,776 KB
実行使用メモリ 90,420 KB
最終ジャッジ日時 2025-06-23 21:18:39
合計ジャッジ時間 5,402 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #

N,M = map(int,input().split())
A = [[-1] * N for _ in range(N)]
NB = 1 << N
for _ in range(M):
    a,b,c = map(int,input().split())
    a -= 1
    b -= 1
    A[a][b] = max(A[a][b],c)
    A[b][a] = max(A[a][b],c)
D = [[-1] * N for _ in range(NB)]
for i in range(N):
    D[1<<i][i] = 0
for S in range(NB):
    for u in range(N):
        if not(S>>u & 1):
            continue
        for v in range(N):
            if S>>v & 1:
                continue
            if A[u][v] == -1:
                continue
            if D[S][u] != -1:
                D[S|1<<v][v] = max(D[S|1<<v][v],D[S][u]+A[u][v])

ans = 0
for d in D:
    #print (*d)
    #print()
    ans = max(ans,max(d))
print(ans)
0