【Atcoder Regular Contest 077 E】guruguru
题意:给一盏灯,有一个\(1..m\)的亮度,然后现在要从某一个亮度\(A_1\)开始,每次可以将灯的亮度变成\((now\bmod m)+1\)或者一个提前设定的\(x\),一直变化成\(A_i(2\le i\le n)\)。
现在问如何设置一个\(x\)使得总代价最小。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。思路:线段树。
我们可以发现,当且仅当我们把\(x\)放在\(A_i,A_{i+1}\)这个区间中间时,\(x\)才会对当前这次改变做出贡献。
那么我们就发现我们需要一个区间加等差数列的东西。
线段树再好不过了。
所以差分一下,不断对这些区间加上一个等差数列代表可以贡献的值,最后比较哪个的贡献最大即可。
但是弄等差数列的时候比较麻烦吧。

更多精彩