LOJ#3157. 「NOI2019」机器人(dp+下降幂多项式)

该博客详细解析了LOJ#3157题目,涉及NOI2019的一道神题。作者介绍了如何利用动态规划(dp)和下降幂多项式来解决区间最大值出现位置的问题。讨论了算法的时间复杂度,并展示了如何通过数学归纳法简化问题,以及在模数为1e9+7的条件下,使用O(n^2)的方法进行下降幂多项式乘法。最后给出了实现代码。
摘要由CSDN通过智能技术生成

传送门
神题 O r z Orz Orz
首先 50 p t s 50pts 50pts大家应该都会。。。
直接设 f l , r , x f_{l,r,x} fl,r,x表示区间 [ l , r ] [l,r] [l,r]中最大值为 x x x的方案数,然后枚举最大值出现位置转移即可。
复杂度?
由于对于每个区间 [ l , r ] [l,r] [l,r]只有 2 / 3 2/3 2/3个点可以用于转移,所以前两维总状态数大概是 O ( n ) O(n) O(n)级别的。
而对于最后一维,貌似不好优化。

考虑到最后取值的区间只有 O ( n ) O(n) O(n)段,我们不妨重新设一个状态:
f l , r , t , x ′ f'_{l,r,t,x} fl,r,t,x表示对于区间 [ l , r ] [l,r] [l,r]最大值在第 t t t段内且等于 x x x

然后经过数学归纳会发现在同一区间同一段取值区间内的数对应一个相同的函数。

f l , r , t , x ′ f'_{l,r,t,x} fl,r,t,x是关于 x x x的多项式 f l , r , t ′ ( x ) f'_{l,r,t}(x) fl,r,t(x)

那么 f l , r , x f_{l,r,x} fl,r,x就是关于 x x x的分段多项式 f l , r ( x ) f_{l,r}(x) fl,r(x)

考虑如何从 f l , m i d f_{l,mid} fl,mid f m i d + 1 , r f_{mid+1,r} fmid+1,r

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值