<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tree_dp on 競プロメモ</title><link>https://goropikari.github.io/CompetitiveProgramming/tags/tree_dp/</link><description>Recent content in Tree_dp on 競プロメモ</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sun, 01 Mar 2026 23:45:30 +0900</lastBuildDate><atom:link href="https://goropikari.github.io/CompetitiveProgramming/tags/tree_dp/index.xml" rel="self" type="application/rss+xml"/><item><title>木 DP (ABC Tree DP)</title><link>https://goropikari.github.io/CompetitiveProgramming/tree_dp/</link><pubDate>Sun, 01 Mar 2026 23:45:30 +0900</pubDate><guid>https://goropikari.github.io/CompetitiveProgramming/tree_dp/</guid><description>&lt;h2 id="-木dp-問題集"&gt;🌳 木DP 問題集&lt;/h2&gt;
&lt;p&gt;AtCoder と AOJ から、木DPを体系的に学べる問題を難易度順にまとめました。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-初級"&gt;🌱 初級&lt;/h2&gt;
&lt;h3 id="1-abc036-d---塗り絵"&gt;1. ABC036 D - 塗り絵&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://atcoder.jp/contests/abc036/tasks/abc036_d"&gt;https://atcoder.jp/contests/abc036/tasks/abc036_d&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;
&lt;summary&gt;💡 ヒント&lt;/summary&gt;
&lt;p&gt;&lt;strong&gt;テーマ：最大独立集合 / 0-1 木DP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;頂点 $v$ について&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$dp[v][0]$ : vを選ばない&lt;/li&gt;
&lt;li&gt;$dp[v][1]$ : vを選ぶ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;状態遷移：&lt;/p&gt;
&lt;p&gt;$dp[v][0] = \prod_{u \in child(v)} (dp[u][0] + dp[u][1])$&lt;/p&gt;
&lt;p&gt;$dp[v][1] = \prod_{u \in child(v)} dp[u][0]$&lt;/p&gt;
&lt;p&gt;DFSで子から順に計算する。&lt;/p&gt;
&lt;/details&gt;
&lt;hr&gt;
&lt;h3 id="2-abc138-d---ki"&gt;2. ABC138 D - Ki&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://atcoder.jp/contests/abc138/tasks/abc138_d"&gt;https://atcoder.jp/contests/abc138/tasks/abc138_d&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;
&lt;summary&gt;💡 ヒント&lt;/summary&gt;
&lt;p&gt;&lt;strong&gt;テーマ：木上の累積和&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;根からDFSを行い、&lt;/p&gt;
&lt;p&gt;&lt;code&gt;value[child] += value[parent]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;と親から子へ値を伝播させる。&lt;/p&gt;
&lt;/details&gt;
&lt;hr&gt;
&lt;h3 id="3-aoj-grl_5_a---diameter-of-a-tree"&gt;3. AOJ GRL_5_A - Diameter of a Tree&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://onlinejudge.u-aizu.ac.jp/courses/library/5/GRL/5/GRL_5_A"&gt;https://onlinejudge.u-aizu.ac.jp/courses/library/5/GRL/5/GRL_5_A&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;
&lt;summary&gt;💡 ヒント&lt;/summary&gt;
&lt;p&gt;&lt;strong&gt;テーマ：木の直径&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>