Multiplication Puzzle POJ - 1651

区间dp

并不困难,这一类问题我的思通常是这样的:
关注最终状态。
我注意到了,最终只会剩一个元素。那么我们可以枚举这最后剩的一个元素。
决定了最后剩的元素就帮助我们把整个区间化成了两个小区间了。
类似分治了。

下面就是愉快的区间dp了

#include<cstdio>
#include<algorithm>
using namespace std;
const int inf = 1e9;
int dp[110][110],a[110],n;
int main(){
    scanf("%d",&n);
    for (int i=1;i<=n;++i)scanf("%d",&a[i]);
    for (int i=1;i<=n;++i)for (int j=i+2;j<=n;++j)dp[i][j]=inf;
    for (int p=3;p<=n;++p)
        for (int i=1,j=i+p-1;j<=n;++i,++j)
            for (int k=i+1;k<j;++k)
                dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[k]*a[i]*a[j]);
    printf("%d\n",dp[1][n]);
}
Kuangbin题单详解(区间dp) 文章被收录于专栏

lets go

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 15:19
简历上能写3个月吗?
码农索隆:大胆写,主要你能把实习经历包装好,可以看一下我这篇帖子https://www.nowcoder.com/share/jump/4888395581180798063
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务