東西に並んだ高さの異なるn本の木があります。あるキコリがこれらの木を、西から東の方向へ木の高さが小さい順に並ぶように、いくつかの木を切り倒すことにしました。木の数を最大にするにはどの木を切れ(残せ)ばようでしょうか?このような単純な(くだらない)問題でも、考えられる組み合わせを全て調べようとすると、それは各木を選ぶか選ばないかの組み合わせになるので、計算量はO(2n)となってしまいます。求めることに帰着します。)の中で長さが最大のものをいいます。動的計画法によって与えられた数列の最長増加部分列をみつけることができます。効率のアルゴリズムを紹介します。長さ」を示す配列とします。(通常は非常に小さい値)に初期化します。