码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1651:Multiplication Puzzle

时间:2015-08-04 21:08:31      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

区间DP基础题

只贴代码


#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
#define maxn 0xfffffff

int main()
{
        int n,i,j,k,l;
        int num[1111],dp[1111][1111];
        scanf("%d",&n);

                for(i=1;i<=n;i++)
                        scanf("%d",&num[i]);
                //memset(dp,maxn,sizeof(dp));
                memset(dp,0,sizeof(dp));
                for(i=2;i<=n-1;i++)
                        dp[i][i]=num[i-1]*num[i]*num[i+1];
                for(l=1;l<n-2;l++)
                        for(i=2;i<n-1;i++)
                               {
                                 j=i+l;
                                dp[i][j]=maxn;

                                for(k=i;k<=j;k++)
                                        {
                                                dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k+1][j]+num[i-1]*num[k]*num[j+1]);
                                                //printf("%d %d %d\n",i,j,dp[i][j]);
                                        }
                                }


                printf("%d\n",dp[2][n-1]);

        return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

POJ 1651:Multiplication Puzzle

标签:

原文地址:http://blog.csdn.net/whereyousink/article/details/47281415

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!