首页 > 其他 > 详细

POJ 1160

时间:2015-06-09 16:12:42      阅读:227      评论:0      收藏:0      [点我收藏+]
#include <iostream>
#define MAXN 305
#define inf 123456789
using namespace std;

int _m[MAXN][MAXN];
int _o[MAXN][MAXN];
int _c[MAXN];

int main()
{
    //freopen("acm.acm","r",stdin);
    int n;
    int m;
    int i;
    int j;
    int k;

    cin>>n;
    cin>>m;
    
    for(i = 1; i <= n; ++ i)
    {
        cin>>_c[i];
    }

    for(i = 1; i <= n; ++ i)
    {
        for(j = 1; j <= n; ++ j)
        {
            if(i < j)
            {
                _o[i][j] = _o[i][j-1] + _c[j] - _c[(i+j)/2];
            }
            else
            {
                _o[i][j] = 0;
            }
        }
    }

    for(i = 1; i <= n; ++ i)
    {
        _m[i][1] = _o[1][i];
    }

    for(i = 2; i <= m; ++ i)
    {
        for(j = 2; j <= n; ++ j)
        {
            _m[j][i] = inf;
            for(k = 2; k < j; ++ k)
            {
                
                if(_m[j][i] > _m[k][i-1] + _o[k+1][j])
                {
                    _m[j][i] = _m[k][i-1] + _o[k+1][j];
                }
            }
        }
    }
    cout<<_m[n][m]<<endl;
}

 

POJ 1160

原文:http://www.cnblogs.com/gavinsp/p/4563306.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!