加分二叉树

加分二叉树

https://ac.nowcoder.com/acm/problem/16681

前言:

树的遍历,以前学的时候就很懵逼...

今天就来记录下树的四种遍历.

树的遍历

思路:

这题思路比较简单.区间dp一下即可.

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=32;
ll w[N];
ll f[N][N];//这个区间的最优答案是多少.
int root[N][N];//这一段的根是多少.
ll solve(int l,int r)
{
    if(f[l][r])    return f[l][r];
    if(l==r)       return f[l][r]=w[l];
    if(l>r)        return 1ll;
    for(int i=l;i<=r;i++)
    {
        ll res=solve(l,i-1)*solve(i+1,r)+w[i];
        if(res>f[l][r])    f[l][r]=res,root[l][r]=i;
    }return f[l][r];
}

void print(int l,int r)
{
    if(l==r)    {printf("%d ",l);return;}
    if(l>r)     return;
    printf("%d ",root[l][r]);
    print(l,root[l][r]-1);
    print(root[l][r]+1,r);
}

int main()
{
    ll n;cin>>n;
    for(int i=1;i<=n;i++)    cin>>w[i];
    printf("%lld\n",solve(1,n));
    print(1,n);puts("");
    return 0;
}
lpt的小屋 文章被收录于专栏

我想要一份甜甜的爱情

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:00
林子大了什么鸟都有啊,我觉得我说的已经很客气了,阴阳谁呢
牛客62656195...:应该不是阴阳吧?你第一次注册的时候boss就说你是牛人
点赞 评论 收藏
分享
07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 11:35
程序员小白条:话太多,没实力和学历,差不多回答回答就行了,身份地位不一样
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

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