题解 | #购物单#

购物单

https://www.nowcoder.com/practice/f9c6f980eeec43ef85be20755ddbeaf4

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int N, m;

    while (cin >> N >> m) { // 注意 while 处理多个 case

        vector<vector<int> > prices(m+1, vector<int>(3, 0));
        vector<vector<int> > pricesXimportance(m+1, vector<int>(3, 0));
        
        for(int i=1; i<=m; i++){
            int v, p, q;
            cin>>v>>p>>q;
            if (q==0){
                prices[i][0] = v;
                pricesXimportance[i][0]=p*v;
            }else{

                if(prices[q][1]==0){
                    prices[q][1] = v;
                    pricesXimportance[q][1] = p*v;
                }else{
                    prices[q][2]=v;
                    pricesXimportance[q][2]=p*v;
                }

            }
        }

        // for(int i=0; i<=m; i++){
        //     for(int j=0; j<3; j++){
        //         cout<<prices[i][j];
        //     }
        //     cout<<endl;
        // }


        vector<vector<int> > dp(m+1, vector<int>(N+1,0));

        for(int i=1; i<=m; i++){
            for(int j=1; j<=N; j++){
                dp[i][j] = j>=prices[i][0]?max(dp[i-1][j-prices[i][0]]+pricesXimportance[i][0], dp[i-1][j]):dp[i-1][j];
                dp[i][j] = j>=(prices[i][0]+prices[i][1])?max(dp[i-1][j-prices[i][0]-prices[i][1]]+pricesXimportance[i][0]+pricesXimportance[i][1], dp[i][j]):dp[i][j];
                dp[i][j] = j>=(prices[i][0]+prices[i][2])?max(dp[i-1][j-prices[i][0]-prices[i][2]]+pricesXimportance[i][0]+pricesXimportance[i][2], dp[i][j]):dp[i][j];
                dp[i][j] = j>=(prices[i][0]+prices[i][1]+prices[i][2])?max(dp[i-1][j-prices[i][0]-prices[i][1]-prices[i][2]]+pricesXimportance[i][0]+pricesXimportance[i][1]+pricesXimportance[i][2], dp[i][j]):dp[i][j];
            }
        }


        cout<<dp[m][N]<<endl;


    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 12:22
点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
程序员小白条:你不是有一段实习了吗,现在找中大厂实习?过段时间要秋招了
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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