石头合并得分最大问题
usrbin吧
全部回复
仅看楼主
level 6
石头合并得分最大问题
一排直线上有N堆石头,每次将相望的两堆石头合并,并以合并以后的总数为该次得分,最后全部石头合并为一堆,问:最大总得分为多少?
举例:
1,4,3 三堆石头,
第一次可以1,4合并:
得分=5
5,3
最后,得分=5+8=13
或者:第一次可以4,3合并:
得分=7
1,7
最后,得分=7+8=15
可见,最佳方案是第二种,最大得分为15。
现出5题,问:最大总得分为多少?
题1:1,4,3,2,4,5
题2:1,4,3,2,4,5,2
题3:1,4,3,2,4,5,2,8
题4:1,4,3,2,4,5,2,8,5
题5:1,4,3,2,4,5,2,8,5,3
2011年12月28日 01点12分 1
level 11

int max_score(int a[], int n)
{
int i, j, max=0, tmp, b[15], score;
for(i=0; i<n-1; ++i){
for(j=0; j<n; ++j)b[j]=a[j];
score=b[i]+=b[i+1];
for(j=i+1; j<n; ++j)
b[j]=b[j+1];
score=score+max_score(b, n-1);
if(score>max) max=score;
}
return max;
}
2011年12月30日 00点12分 2
level 11
回复3楼:
是的,确实很慢,但是您有好办法吗[]
2011年12月30日 04点12分 4
level 11
回复5楼:
嗯,膜拜一下[]
2011年12月30日 08点12分 6
level 14
9527,每次贴完题,不贴答案
2011年12月30日 09点12分 7
level 11
回复7楼:
什么叫9524[]
2011年12月30日 09点12分 8
level 11
回复7楼:
不对,什么叫9527[]
2011年12月30日 09点12分 9
level 6
答案在5楼!
2011年12月30日 09点12分 10
1