概要
問題文 → ■
公式解説 → なさそう?
自分の提出 → ■
基礎的な問題。
解法
集合 に対して、頂点集合が と一致する二分木の個数を と書くことにします。これを適当なトポロジカル順序で計算していきます。
が空集合ならば、 です。そうでないとき、 で二分木を作るときの根を 、左側の部分木の頂点集合を 、右側の部分木の頂点集合を として、以下のように計算できます。
- となる に対して、 であるとき、 に を加算する。
これを計算するにあたり、各 に対して、 となる を列挙する必要があります。集合をビット列により整数にエンコードすれば、この操作は bit 演算により、 組の あたり 時間で行えます。また、このような は全部で 通りあります。よって、時間計算量 で問題を解くことができます。
関連