线性DP--BOX

还没学,等学完再仔细写。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[1000010];
ll vis[1000010];
ll f[1000010][3];
int main()
{
    ll n,m;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        cin>>vis[i];
    }
    for(int i=1;i<=n;i++)
    {
        if(vis[i]==1)
        {
            f[i][0]=max(f[i-1][0]+a[i-1],f[i-1][1]);
            f[i][1]=max(f[i-1][0],f[i-1][1])+a[i];
            f[i][2]=max(f[i-1][0],max(f[i-1][1],f[i-1][2]))+a[i+1];
        }
        if(vis[i]==0)
        {
            f[i][0]=max(f[i-1][0],f[i-1][1]);
            f[i][1]=f[i-1][2];
            //f[i][2]=
        }
    }

    cout<<max(f[n][0],max(f[n][1],f[n][2]))<<endl;
    return 0;
}
相关推荐
汉克老师42 分钟前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(5、机甲战士)
c++·算法·蓝桥杯·01背包·蓝桥杯c++·c++蓝桥杯
Mr_Xuhhh2 小时前
项目需求分析(2)
c++·算法·leetcode·log4j
c++bug2 小时前
六级第一关——下楼梯
算法
PAK向日葵2 小时前
【C/C++】面试官:手写一个memmove,要求性能尽可能高
c语言·c++·面试
Morri32 小时前
[Java恶补day53] 45. 跳跃游戏Ⅱ
java·算法·leetcode
林木辛3 小时前
LeetCode热题 15.三数之和(双指针)
算法·leetcode·双指针
AndrewHZ3 小时前
【3D算法技术】blender中,在曲面上如何进行贴图?
算法·3d·blender·贴图·三维建模·三维重建·pcg
Jared_devin3 小时前
二叉树算法题—— [蓝桥杯 2019 省 AB] 完全二叉树的权值
数据结构·c++·算法·职场和发展·蓝桥杯
搞全栈小苏3 小时前
基于Qt QML和C++的MQTT测试客户端(CMakeLists实现)
xml·c++·qt
啊?啊?3 小时前
18 从对象内存到函数调用:C++ 虚函数表原理(继承覆盖 / 动态绑定)+ 多态实战
开发语言·c++·多态原理