cf710 E. Generate a String

题意:

添一个球花费 x,删一个球花费 x,把球的数量翻倍花费 y。问恰得到 n 个球的最小花费

思路:

开动小脑筋处理后效性

(偶数情形)

\(f(2i)\) 可能被 \(f(2i-A)+Ax\)\(f(i+B)+y+2Bx\) 更新

根据dp的定义,\(A=1\)

若被后者更新则 \(f(i+B)+y+2Bx\le f(i)+y\implies f(i+B)+2Bx\le f(i)\)

而根据dp的定义有 \(f(i)\le f(i+B)+Bx\),那么 \(2Bx\le Bx\implies B\equiv 0\)

所以 \(f(2i)\) 只可能被 \(f(2i-1)+x\)\(f(i)+y\) 更新

(奇数情形)

\(f(2i-1)\) 可能被 \(f(2i-2)+x\)\(f(i+B)+y+(2B+1)x\) 更新

若被后者更新则 \(f(i+B)+y+(2B+1)x\le f(i)+y+x\implies f(i+B)+2Bx\le f(i)\)

同理,\(B\equiv 0\)

所以 \(f(2i-1)\) 只可能被 \(f(2i-2)+x\)\(f(i)+y+x\) 更新

综上,\(f(i)=\min \{ f(i-1)+x,f(\lfloor \frac{i+1}2 \rfloor)+y+(i\%2)x \}\)

posted @ 2022-04-24 18:38  Bellala  阅读(36)  评论(0)    收藏  举报