結果
問題 | No.1284 Flip Game |
ユーザー |
|
提出日時 | 2021-02-19 08:52:04 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 321 ms / 2,000 ms |
コード長 | 609 bytes |
コンパイル時間 | 1,812 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 96,128 KB |
最終ジャッジ日時 | 2024-09-15 13:13:40 |
合計ジャッジ時間 | 5,504 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
ソースコード
import syssys.setrecursionlimit(10**7)n=int(input())c=[list(map(int,input().split())) for _ in range(n)]inf=float('inf')memo={}memo[0]=0d={}for i in range(n):d[2**i+2**(i+n)]=idef func(red,pre):key=(red,pre)if red==0:memo[key]=0if red in d:i=d[red]return c[pre][i]if key in memo:return memo[key]ret=inffor i in range(n):if i==pre:continueif (red>>i)&1:ret=min(ret,func(red^(1<<i),i)+c[pre][i])elif (red>>(n+i))&1:ret=min(ret,func(red^(1<<(n+i)),i)+c[pre][i])memo[key]=retreturn retc.append([0]*n)ret=func(2**(2*n)-1,-1)print(ret)