又一道DP,刚开始时完全没有思路,上网搜了一下别人的程序,其实也不是很难……
总结一下,大方向是对于每一块brick,搜索3种情况,放左边、右边、不放。但如果简单暴力搜索一定超时,3^500000
DP的关键就是找到“状态”,以什么来表示状态
上网搜了一下别人的程序,用“两塔高度差”作为状态,下来的思路就很简单了
找到“状态”是最难的一步,如何确定“状态”,目前我还没找到好的方法
通常“状态”从直接的方向是找不到的,需要换一个角度
这道题目可以从结果找到,“高度相等,且高度最大”。“高度相等”,换一个角度就是两塔高度差为0。因此我们最终关心的只是两塔的高度差,以及在这个高度差下的最大高度。
由此DP就很清晰了