結果
問題 |
No.1227 I hate ThREE
|
ユーザー |
![]() |
提出日時 | 2020-07-27 12:45:22 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 756 bytes |
コンパイル時間 | 629 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 243,328 KB |
最終ジャッジ日時 | 2024-11-15 15:48:05 |
合計ジャッジ時間 | 25,495 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 1 WA * 31 RE * 1 |
ソースコード
mod=10**9+7 n,c=map(int,input().split()) edge=[[]for _ in range(n)] for _ in range(n-1): a,b=map(int,input().split()) a-=1 b-=1 edge[a].append(b) edge[b].append(a) def solve(x): minc=min(2*n+7,x) dp=[minc*[1]for _ in range(n)] def dfs(r,node): for mode in edge[node]: if mode==r:continue dp1=dfs(node,mode) dp[node][0]=(dp[node][0]*dp1[1])%mod dp[node][-1]*=(dp[node][-1]*dp1[-2])%mod for i in range(1,minc-1): dp[node][i]=(dp[node][i]*(dp1[i-1]+dp1[i+1]))%mod return dp[node] dfs(-1,0) if minc==x:return sum(dp[0]) else:return sum(dp[0])+(x-minc)*dp[0][minc//2] ans1=solve((c+2)//3) if c>=4 else 0 ans2=solve((c+1)//3) if c>=5 else 0 ans3=solve(c//3) if c>=6 else 0 print(ans1+ans2+ans3)