結果
問題 |
No.1111 コード進行
|
ユーザー |
👑 ![]() |
提出日時 | 2020-07-10 21:58:54 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
RE
|
実行時間 | - |
コード長 | 832 bytes |
コンパイル時間 | 279 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 230,272 KB |
最終ジャッジ日時 | 2024-10-11 09:09:00 |
合計ジャッジ時間 | 9,956 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 6 RE * 42 |
ソースコード
""" グラフ メモ化再帰 各頂点で開始、複雑さXのものはいくつあるかをメモ化再帰で求める N * 300 なので行ける """ import sys sys.setrecursionlimit(1000000) mod = 10**9+7 def dfs(v,k,n): if k == 0 and n == 0: return 1 elif k < 0 or n <= 0: return 0 elif visit[v][k][n] != None: return visit[v][k][n] ret = 0 for nex,cost in lis[v]: ret += dfs(nex , k-cost , n-1) ret %= mod visit[v][k][n] = ret return ret N,M,K = map(int,input().split()) lis = [ [] for i in range(N) ] visit = [[[None] * N for j in range(K+1)] for i in range(300)] for i in range(M): P,Q,C = map(int,input().split()) P -= 1 Q -= 1 lis[P].append((Q,C)) ans = 0 for i in range(N): ans += dfs(i,K,N-1) ans %= mod print (ans)