acwing算法提高之动态规划--状态机模型

2023-12-15 19:38:58

1 基础知识

暂无。。。

2 模板

暂无。。。

3 工程化

题目1:大盗阿福。

解题思路:状态表示多了一维,取0或者取1,表示不选择第i个物品和选择第i个物品。

C++代码如下,

#include <iostream>
#include <cstring>

using namespace std;

const int N = 100010;
int n;
int w[N];
int f[N][2];

int main() {
    int T;
    cin >> T;
    
    for (int C = 0; C < T; ++C) {
        cin >> n;
        for (int i = 1; i <= n; ++i) cin >> w[i];
        
        //状态计算
        for (int i = 1; i <= n; ++i) {
            f[i][0] = f[i][1] = 0;
        }
        
        for (int i = 1; i <= n; ++i) {
            f[i][0] = max(f[i-1][0], f[i-1][1]);
            f[i][1] = f[i-1][0] + w[i];
        }
        
        int res = 0;
        for (int i = 1; i <= n; ++i) {
            res = max(res, f[i][0]);
            res = max(res, f[i][1]);
        }
        cout << res << endl;
    }
    
    return 0;
}

题目2

文章来源:https://blog.csdn.net/YMWM_/article/details/135018679
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。