結果
| 問題 |
No.2435 Order All Company
|
| コンテスト | |
| ユーザー |
yuyu_5510
|
| 提出日時 | 2023-08-13 15:05:37 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,324 bytes |
| コンパイル時間 | 112 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 44,736 KB |
| 最終ジャッジ日時 | 2024-11-23 22:50:58 |
| 合計ジャッジ時間 | 22,272 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 36 |
ソースコード
import os
import sys
import numpy as np
def solve(inp):
N, K = inp[:2]
G = np.zeros((K, N, N), dtype=np.int64)
mod = 998244353
idx = 2
for i in range(K):
tmp = inp[idx]
idx += 1
for j in range(tmp):
a, b = inp[idx:idx+2]
idx += 2
G[i][a-1][b-1] += 1
G[i][b-1][a-1] += 1
dp = np.zeros((N+1, 1<<K), dtype=np.int64)
dp[1][0] = 1
for i in range(1, N):
cnt = np.zeros(K, dtype=np.int64)
for j in range(K):
for k in range(i):
cnt[j] += G[j, k, i]
cnt[j] %= mod
for j in range(1<<K):
for k in range(K):
dp[i+1, j | 1<<k] += (dp[i, j] * cnt[k]) % mod
dp[i+1, j | 1<<k] %= mod
return dp[N, (1<<K)-1]
SIGNATURE = '(i8[:],)'
if sys.argv[-1] == 'ONLINE_JUDGE':
from numba.pycc import CC
cc = CC('my_module')
cc.export('solve', SIGNATURE)(solve)
cc.compile()
exit()
if os.name == 'posix':
# noinspection PyUnresolvedReferences
from my_module import solve
else:
from numba import njit
solve = njit(SIGNATURE, cache=True)(solve)
print('compiled', file=sys.stderr)
inp = np.fromstring(sys.stdin.read(), dtype=np.int64, sep=' ')
ans = solve(inp)
print(ans)
yuyu_5510