[2021牛客多校9 K] xay loves sequence(二分+主席树)

优化操作次数:序列转换与模k操作的最小代价

题意

有长度为 nnn 的序列 { an}\{a_n\}{ an}。设 f([a1,a2,..,an],k)f([a_1,a_2,..,a_n],k)f([a1,a2,..,an],k) 表示最少的操作次数,使得 aaa 全为 000。每次操作你可以选择一个区间 [l,r][l,r][l,r],使得 ∀i∈[l,r],ai=(ai+1) mod k\forall i \in [l,r],a_i=(a_i+1)~mod~ki[l,r],ai=(ai+1) mod k 或者 ∀i∈[l,r],ai=(ai−1) mod k\forall i \in [l,r],a_i=(a_i-1)~mod~ki[l,r],ai=(ai1) mod k
现在有 qqq 次询问,每次询问给出 l,r,kl,r,kl,r,k,求 f([al,...,ar],k)f([a_l,...,a_r],k)f([al,...,ar],k),每个询问独立。
其中,1≤n≤2×105,k≤230,0≤ai<k1\le n\le 2\times 10^5,k\le 2^{30},0\le a_i<k1n2×105,k230,0ai<k

分析

先不考虑模 kkk,问题就是每次可以给一段区间加一或减一,求最少多少次能把整个序列全变成 000

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值