题解 | #采药#

采药

http://www.nowcoder.com/practice/d7c03b114f0541dd8e32ce9987326c16

大部分牛客都使用优化后的二维化一维数组,此处提供最原始二维存储方案(当然优化后存储空间更低)

#include<iostream>
using namespace std;
int main()
{
    int t,m;
    cin >> t >> m;
    int time[101],value[101];
    int dp[1001][1001];
    for(int i = 1;i <= m;++i)
        cin >> time[i] >> value[i];
    for(int i = 0;i <= m;++i){
        for(int j = 0;j <= t;++j){
            if(i == 0 || j == 0)
                dp[i][j] = 0;
            else{
                if(j < time[i])
                    dp[i][j] = dp[i - 1][j];
                else
                    dp[i][j] = max(dp[i - 1][j],dp[i - 1][j - time[i]] + value[i]);
            }
        }
    }
    cout << dp[m][t];
}
全部评论
就想找原始二维数组的
点赞 回复 分享
发布于 2022-03-10 18:58

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

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