結果
問題 | No.1227 I hate ThREE |
ユーザー |
![]() |
提出日時 | 2024-01-22 12:17:38 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,200 bytes |
コンパイル時間 | 201 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 132,892 KB |
最終ジャッジ日時 | 2024-09-28 06:23:10 |
合計ジャッジ時間 | 14,890 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 4 WA * 29 |
ソースコード
import sysinput = sys.stdin.readlinedef non_rec_dfs(G, s):stack = [s]N = len(G)par = [-1] * Nsz = [1] * Ndp = [[1] * M for _ in range(N)]ans = 0while stack:u = stack.pop()if u >= 0:stack.append(~u)for v in G[u]:if v == par[u]:continuepar[v] = ustack.append(v)else:u = ~ufor i in range(M):for v in G[u]:temp = 0if v == par[u]:continuesz[u] += sz[v]if i >= 3:temp += dp[v][i - 3]if i < M - 3:temp += dp[v][i + 3]dp[u][i] *= tempdp[u][i] %= modreturn dp[0]N, C = map(int, input().split())M = min(7000, C)mod = 10 ** 9 + 7G = [[] for i in range(N)]for i in range(N - 1):u, v = map(int, input().split())u, v = u - 1, v - 1G[u].append(v)G[v].append(u)dp = non_rec_dfs(G, 0)ans = sum(dp) + dp[M//2] * (M - C)print(ans%mod)