結果
| 問題 |
No.1112 冥界の音楽
|
| コンテスト | |
| ユーザー |
brthyyjp
|
| 提出日時 | 2021-01-02 12:25:13 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
RE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 823 bytes |
| コンパイル時間 | 159 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 94,760 KB |
| 最終ジャッジ日時 | 2024-10-12 02:20:34 |
| 合計ジャッジ時間 | 22,916 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 3 |
| other | RE * 34 |
ソースコード
import sys
import io, os
input = sys.stdin.buffer.readline
mod = 10**9+7
import numpy as np
#A**n
def mat_pow(A, n, mod):
size = len(A)
res = np.eye(size, dtype=np.object)
while n > 0:
if n & 1 == 1:
res = res @ A
res %= mod
A = A @ A
A %= mod
n = n>>1
return res
k, m, n = map(int, input().split())
PQR = []
for i in range(m):
p, q, r = map(int, input().split())
p, q, r = p-1, q-1, r-1
PQR.append((p, q, r))
#A = [[0]*(k**2) for i in range(k**2)]
A = np.zeros((k**2, k**2), dtype=np.object)
for i in range(m):
p, q, r = PQR[i]
u = p*k+q
v = q*k+r
A[u][v] += 1
A = mat_pow(A, n-2, mod)
ans = 0
for i in range(k):
v = 0*k+i
for j in range(k):
u = j*k+0
ans += A[v][u]
#print(A)
print(ans%mod)
brthyyjp