Description:

ブロックがn個あり、各ブロックは2つのパラメータを持っている。
二つのブロックがあり、各々のパラメータを(l, m)、(l', m')とすると、 l>=l' かつ m>=m' なら、前者のブロックを後者の上に乗せる事が出来る。
最大いくつまでブロックを積み上げる事が出来るか?
n<=1万
0<=l,m<=100

Answer:

パラメータが(l,m)以下の物だけを積み上げた時の答えをans(l,m)、
パラメータが(l,m)のブロックの個数をblock(l,m)とすると、
ans(l,m) = block(l,m) + max(ans(l-1,m), ans(l,m-1)) となる。
ans(100,100)をDPかメモ付き探索で求めれば良い。

Source: