HUD1069

作者: lvanzn | 来源:发表于2018-09-17 13:46 被阅读0次

    这道题目的思路和LIS相似,但是要注意排序的问题。

    struct node{
        int a,b,c;
    }nodes[280];
    bool cmp(const node&n1,const node&n2)
    {
        if(n1.a==n2.a)
            return n1.b<n2.b;
        else
            return n1.a<n2.a;
    }
    

    接下来是状态转移方程,dp[i]=max(dp[i],dp[j]+nodes[i].c);
    可以想到第i个的最大长度是建立在其他长度之上的,所以只要求出前面的dp[],再加上nodes[i].c,就是dp[i]的最优解。

    从中,我也明白了状态转移问题的一个特点是问题的规模小,问题能够分解为子问题。
    划分成为之前的状态加上当前的状态的解。

    相关文章

      网友评论

          本文标题:HUD1069

          本文链接:https://www.haomeiwen.com/subject/okrlnftx.html