[PKUSC2018]最大前缀和

本文介绍了如何求解所有排列的最大前缀和之和的问题。通过探讨满足特定性质的解法,定义了f[i]和g[i]分别表示满足不同条件的方案数,以及sum[i]表示集合i的权值。利用刷表法和填表法进行状态转移,并给出最终的时间复杂度为O(n^2*n)的解决方案。
摘要由CSDN通过智能技术生成

一、题目

点此看题

二、解法

本题就是要求所有排列的最大前缀和之和,首先考虑这样一些性质:

  • 最大前缀和的每个后缀值一定 ≥ 0 \geq0 0,不然可以删去得到更大的。
  • 删去最大前缀的每个前缀值一定 < 0 <0 <0,不然可以添加得到更大的。

f [ i ] f[i] f[i]为集合 i i i满足条件 1 1 1的方案数, g [ i ] g[i] g[i]为集合 i i i满足条件 2 2 2的方案数,(这里解释一下为什么严格小于,因为有多个最大值的情况可能被算重,严格小于就会让最后一个位置的最大值从 f f f处算一次), s u m [ i ] sum[i] sum[i]为集合 i i i的权值。

考虑转移, f [ i ] f[i] f[i]可以用刷表法,在首位填上一个未出现的数 j j j

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值