voj1312 环形dp 记忆化搜索

来源:互联网 发布:java应用开发框架 编辑:程序博客网 时间:2024/04/27 21:27
蒟蒻的自我拯救。。。
#include <iostream>#include <cstring>#include <algorithm>#include <cstring>#include <cmath>#include <cstdio>using namespace std;int save[1000],n,dp[1000][1000],use[1000];int dfs(int l,int r){    if(dp[l][r])return dp[l][r];    for(int i=l;i<r;i++)    dp[l][r]=max(dp[l][r],dfs(l,i)+dfs(i+1,r)+save[i+1]*save[l]*save[r+1]);    return dp[l][r];}int main(){    scanf("%d",&n);    for(int i=1;i<=n;i++)    {        scanf("%d",&save[i]);        save[i+n]=save[i];    }    int ans=0;    for(int i=1;i<=n;i++)    {        ans=max(ans,dfs(i,i+n-1));    }    printf("%d\n",ans);    return 0;}

0 0