結果
問題 | No.196 典型DP (1) |
ユーザー |
![]() |
提出日時 | 2015-05-16 10:57:31 |
言語 | PyPy2 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 714 bytes |
コンパイル時間 | 1,614 ms |
コンパイル使用メモリ | 76,672 KB |
実行使用メモリ | 816,584 KB |
最終ジャッジ日時 | 2024-07-06 04:45:08 |
合計ジャッジ時間 | 8,253 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | AC * 8 WA * 23 MLE * 1 -- * 9 |
ソースコード
N,K=map(int,raw_input().split()) parent=[-1 for i in range(N)] child=[[] for i in range(N)] mod=1000000007 for i in range(N-1): a,b=map(int,raw_input().split()) parent[b]=a child[a].append(b) dp=[[0 for j in range(N+1)] for k in range(N)] for i in range(N-1,-1,-1): if len(child[i])==0: dp[i][0]=1 dp[i][1]=1 continue l=[(0,1)] for c in child[i]: nl=[] for j in range(N+1): if dp[c][j]==0: break for key,val in l: nl.append((key+j,val*dp[c][j]%mod)) l=nl s=0 for key,val in l: dp[i][key]+=val dp[i][key]%=mod s=max(s,key) dp[i][s+1]=1 print dp[0][K]