結果
| 問題 |
No.943 取り調べ
|
| コンテスト | |
| ユーザー |
tktk_snsn
|
| 提出日時 | 2021-01-07 17:16:14 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 191 ms / 1,206 ms |
| コード長 | 511 bytes |
| コンパイル時間 | 202 ms |
| コンパイル使用メモリ | 82,560 KB |
| 実行使用メモリ | 78,080 KB |
| 最終ジャッジ日時 | 2024-11-08 19:57:33 |
| 合計ジャッジ時間 | 3,301 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 |
ソースコード
N = int(input())
X = tuple(tuple(map(int, input().split())) for _ in range(N))
Y = [0] * N
for i, x in enumerate(X):
for j, xj in enumerate(x):
if xj:
Y[i] += 1 << j
A = tuple(map(int, input().split()))
dp = [0] * (1 << N)
for S in range(1 << N):
for i, a in enumerate(A):
if (S >> i) & 1:
dp[S] += a
for S in range(1 << N):
for i, T in enumerate(Y):
if S - T == S ^ T:
dp[S | (1 << i)] = min(dp[S], dp[S | (1 << i)])
print(dp[(1<<N)-1])
tktk_snsn