5.14每日一题Optimal Partition

学习算法的小菜鸡 每日一题总教官 中北大学 软件工程  2022-05-14 13:44:54
加精
void solve() {
    int n;
    cin>>n;
    a[0]=ans[0]=0;
    bit[0].init(n);
    bit[1].init(n);
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
        a[i]+=a[i-1];
        mp[i]=a[i];
    }
    mp[n+1]=0;
    sort(mp+1,mp+n+2);
    unique(mp+1,mp+n+2);
    for(int i=0; i<=n; i++)
    {
        a[i]=lower_bound(mp+1,mp+n+2,a[i])-mp;
    }
    bit[0].add(a[0],0);
    bit[1].add(a[0],0);
    for(int i=1;i<=n;i++){
        ans[i]=ans[i-1]-1;
        ans[i]=max(ans[i],i+bit[0].get(a[i]-1));
        ans[i]=max(ans[i],bit[1].get(a[i]));
        bit[0].add(a[i],ans[i]-i);
        bit[1].add(a[i],ans[i]);
    }
    cout<<ans[n]<<endl;
}

 

...全文
19 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
高校算法学习社区
加入

1.7w+

社区成员

和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
社区管理员
  • 执 梗
  • 京与旧铺
  • 小袁ITSuper
帖子事件
创建了帖子
2022-05-14 13:44
社区公告

为了充分激发大家的创作热情和发文贡献,这里规定了高效算法学习社区对于积分榜的贡献排行榜的奖措施:

总榜奖励:(截止于2023年4月1日)

1.总榜第一:现金三百元

2.总榜第二与第三:Acwing算法课一套(价值150元可提现)

月榜:(从2020.年4月1日开始,每月一号结算)

1.月榜前三:请喝奶茶一杯

更多详细可看下:https://docs.qq.com/doc/DVnZJbkFPc1BNU2x2