您的位置:首页 > 其它

POJ1948 DP 三角形

2016-02-15 20:45 246 查看
题目大意:用所有的木块来堆成最大的三角形面积。

思路:最大值是1600的边长,但是不能超过1/2,所以就是dp[800 + 5][800 + 5],然后枚举边长,当dp[j][k]存在的时候就说明可以取到j和k这两个边长,然后第三条边长就用sum - k - j就可以了。

疑问:

可以正推吗,为什么我正推没有写出来TAT

个人的想法:

如果说是按照原来代码的意思正推的话,那么当选择一条边的时候,从0推导sum/2。但是,在a[i]~sum/2的范围内是不可能存在有true的长度的,所以正推for从0~sum/2的话,会加入很多的true数据,所以会WA。

具体的可以看这个人的
http://blog.csdn.net/shuangde800/article/details/8962945这个代码是AC了,但是貌似3 4 5输出了-1,测试数据可能有点弱吧

或者这个人的
http://blog.csdn.net/sssogs/article/details/8496523
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: