poj1651 区间dp

时间:2021-01-04 21:42:31
 //Accepted    200 KB    0 ms
 //dp区间
 //dp[i][j]=min(dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]) i<k<j
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 using namespace std;
 ;
 ;
 int dp[imax_n][imax_n];
 int a[imax_n];
 int n;
 int min(int a,int b)
 {
     return a<b?a:b;
 }
 void Dp()
 {
     ;i<=n-;i++)
     dp[i][i+]=a[i]*a[i+]*a[i+];
     ;l<=n;l++)
     {
         ;i<=n;i++)
         {
             ;
             if (j>n) break;
             dp[i][j]=Pinf;
             ;k<j;k++)
             dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]);
             //printf("dp[%d][%d]=%d\n",i,j,dp[i][j]);
         }
     }
     printf(][n]);
 }
 int main()
 {
     while (scanf("%d",&n)!=EOF)
     {
         ;i<=n;i++)
         scanf("%d",&a[i]);
         Dp();
     }
     ;
 }