首先一个想法是,尽量凑出三条长度差不多的边,然后计算面积。
但是这样不对,我们并不能保证那就是最优解。
后来依照海伦公式写了个式子,看有没有极值什么之类的,未果。
最终觉得,还是枚举比较合适。
枚举第一条边的长度,我们需要快速知道第二条边和第三条边的取值的可能的组合。因为如果知道第二条边的长度,我们可以根据周长求到第三条边的长度,所以问题就变成了已知一条边,如何快速求另外一条边长度可能的取值,其实也就是子集和的问题。
解答方式很简单,就是在传统的背包问题上,多给它增加一个背包。
DP[i][j][k]表示使用前i个木棍,能否凑出长度为j和k的两根木棍。
DP方程是DP[i][j][k]=DP[i-1][j-length[i]][k]=DP[i-1][j][k-length[i]]