求助蚂蚁笔试第二题,我这样写为啥不对呀

有一个01字符串,每个字符都有一个价值,字符串中不能出现 110,问删除一定字符后最大价值是多少

#include
using namespace std;

const int N = 2e5 + 10;
typedef long long LL;

LL a[N];
LL f[N][3];

int main() 
{
    int n; cin >> n;
    for (int i = 1; i <= n; i ++) cin >> a[i];
    string s; cin >> s; s = " " + s;
    for (int i = 1; i <= n; i ++)
    {
        char c = s[i];
        if (c == '0')
        {
            f[i][1] = f[i - 1][1];
            f[i][2] = f[i - 1][2];
            f[i][0] = max(f[i - 1][0], f[i - 1][1]) + a[i];
        }
        else
        {
            f[i][0] = f[i - 1][0];
            f[i][1] = f[i - 1][0] + a[i];
            f[i][2] = max(f[i - 1][1], f[i - 1][2]) + a[i];
        }
    }

    cout << max(f[n][0], max(f[n][1], f[n][2]));
}
全部评论
兄弟问一下,你还记得最后一题那个翻转是对节点本身翻转,还是对节点子树或者其他的什么东西翻转不
点赞 回复 分享
发布于 09-04 21:01 北京
c==1的情况,f[i][1] = max(f[i-1][0]+a[i], f[i-1][1])
点赞 回复 分享
发布于 09-04 21:00 北京

相关推荐

09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
27届毕业,最近想找一段大厂实习,感觉简历有些问题,好多都不给面,求大佬们指点,最近好焦虑
重生之我学Java干...:我从后端的角度分析一下你的第一个项目,我感觉亮点不是很突出。因为我是因为组内有需求,临时上手学react干活。我用到的技术基本就cover你那个智慧园区管理平台的很多亮点了。那作为比较专业的前端,你上述的内容是不是有点单薄呢。感觉还得包装
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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