ruilianglv 2010-08-06 23:26:00
点我顶贴
收藏
删除
就假如题是这样的,石子都摆在一条直线上,每次只能合并相邻的两堆,那么就有
f[i][j]=min{f[i][k]+f[k+1][j] | i<k<j},初始化f[i][i+1]=h[i]+h[i+1],而答案是f[1][N]。
循环假如这么写
for(i=1;i<=N-1;i++)
for(j=i+1;j<=N;j++)
这样肯定是错的
那应该怎样写?谢谢
#1 ruilianglv@2010-08-06 23:26:00
15909
回复
删除
啊我知道了应该这么写:
for(j=2;j<=N;j++)
for(i=j-1;i>=1;i--)
for(k=i;k<=j;k++)
{
...
}
能量项链就这么写,没有debug直接AC,哈哈..
测试结果1: 通过本测试点|有效耗时62ms
测试结果2: 通过本测试点|有效耗时47ms
测试结果3: 通过本测试点|有效耗时47ms
测试结果4: 通过本测试点|有效耗时47ms
测试结果5: 通过本测试点|有效耗时47ms
测试结果6: 通过本测试点|有效耗时47ms
测试结果7: 通过本测试点|有效耗时47ms
测试结果8: 通过本测试点|有效耗时46ms
测试结果9: 通过本测试点|有效耗时47ms
测试结果10: 通过本测试点|有效耗时47ms