1 の#define HAVE_STRUCT_TIMESPEC 2の#include <ビット/ STDC ++ H> 3 使用して 名前空間STDを、 4 int型 A [ 507 ]。 5 int型の DP [ 507 ]。 6 INT メイン(){ 7つの IOS :: sync_with_stdio(偽)。 8 cin.tie(NULL)。 9 cout.tie(NULL)。 10 INT N。 11 CIN >> N。 12 のために(INT iは= 1 ; I <= N ++ I) 13 CIN >> [i]は、 14 のために(INT iは= 1 ; iが<= N; ++ I){ 15 スタック< INT > S。 16 s.push([I])。 17 DP [I] = DP [I- 1 ] + 1 。 18 のために(INT J = I- 1 ; J; - J){ 19 のint NUM = [J]。 20 ながら(!s.empty()&& s.top()== NUM){ 21 s.pop()。 22 ++ NUM。 23 } 24 s.push(NUM)。 25 DP [I] =分(DP [I]、DP [J- 1 ] +(INT )s.size())。 26 } 27 } 28 COUT << DP [n]は、 29 リターン 0 ; 30 }