设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 588|回复: 0
打印 上一主题 下一主题

石子合并问题(求助 改错)

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 03:40:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一列石子,公式得到了,用动态规划实现时总是输出0
我实现矩阵连乘算法用动态规划也不能得到正确结果
[code=c]
/*m[i][j]={0 i=j;min{m[i][k-1]+m[k][j]+w(i,j)} i<j}*/
#include <iostream>
using namespace std;
const int N=4;
int a[N]={4,4,5,9};
int m[N][N]={0};
int s[N][N]={0};
int Sum(int a[],int i,int j)//最后一次合并的得分
{
    int temp=0;
    for(int k=i;k<=j;k++)
    {
        temp+=a[k];
    }   
    return temp;
}

void Stone()//动态规划求最小得分
{
    int i,j,r,k,t;
    for(i=0;i<N;i++)
        m[i][i]=0;
    for(r=1;r<N;r++)
    {
        for(i=0;i<N-r;i++)
        {
            j=i+r;
            for(k=i+1;k<j;k++)
            {
                t=m[i][k-1]+m[k][j]+Sum(a,i,j);
                if(t<m[i][j])
                {
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 17:33 , Processed in 0.096419 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表