牛妹的野菜(DP)

牛妹的野菜(DP)

思路: d p dp

因为题目限制边是从编号小到编号打的,所以可以从小到大 d p dp

不知道为什么直接在图上跑 d p dp 就只能过 70 % 70\% 的数据。

#define pb push_back
class Solution {
public:
    string digSum(vector<int>& a, vector<vector<int> >& b) {
         int n=a.size();
        vector<int>pre(n+1,-1),dp(n+1,0);
        vector<vector<int> >e(n+1);
        for(auto v:b)
           e[v[0]].pb(v[1]);
        int pos=1;
        for(int i=1;i<=n;i++){
            dp[i]+=a[i-1];
            if(dp[pos]<dp[i]) pos=i;
            for(auto v:e[i]){
                if(dp[v]<dp[i]) dp[v]=dp[i],pre[v]=i;
            }
        }
        string ans;
        ans+=to_string(pos);
        pos=pre[pos];
        while(~pos){
            ans=to_string(pos)+'-'+ans;
            pos=pre[pos];
        }
        return ans;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_45750972/article/details/107450566
今日推荐