1621: 1的最优操作序列
提交: 81 解决: 8
[提交][状态][讨论版]
题目描述
在黑板上写了N(n≤10000)个1,进行如下操作:每次擦去其中两个数a、b,并写上数a*b+1,如此下去直至最后一个数A。 请你编程序求出A的最大值。
输入
只有一个整数N
输出
也只有一个整数,表示得到的最大值
样例输入
5
样例输出
7
提示
来源
分析:
区间动规
和合并石子很像
f[i][j]表示把第i堆石子合并到第j堆石子的最优值
那么:
f[i][j]=max( f[i][k]*f[k+1][j]+1, f[i][j]);
f[i][i]=1;
1 5
1 1 1 1 1
第二种:
f[i]表示i个1可以达到的最大值
f[i] = f[k] * f[i - k] + 1
f[i] = f[k] * f[i - k] + 1