前提・実現したいこと
プログラムの高速化
ここに質問の内容を詳しく書いてください。
ATCODER ABC138 D
https://atcoder.jp/contests/abc138/tasks/abc138_d
発生している問題・エラーメッセージ
TLE
エラーメッセージ
該当のソースコード
https://atcoder.jp/contests/abc138/submissions/7022109
ソースコード
import sys sys.setrecursionlimit(10**9) def dfs(now, prev): ans[now]+=(h[now]+ans[prev]) 今いる頂点から行ける頂点を順に next に入れてループ for next in g[now]: if next != prev: if memo[next]==True: 過去に訪れていれば終わらせる return False else: memo[next] = True dfs(next, now) 木構造の取り込み n, q = map(int, input().split()) g = [[] * n for i in range(n)] for i in range(n-1): u, v = map(int, input().split()) u -= 1 v -= 1 g[u].append(v) g[v].append(u) 操作の取り込み h=[0]*n for i in range(q): u, v = map(int, input().split()) u -= 1 h[u]+=v 初期のカウンター ans=[0]*n memo = [False for i in range(n)] DFSでカウンターを動かす dfs(0,0) print(' '.join(map(str, ans))) ### 試したこと PYPYに投げてみてもダメでした。 メモ化再帰のDFSでは難しいのでしょうか? ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。