Codeforces1207-C Gas Pipeline
题目大意:在$x$轴的非负区域,有长度为$n$的路,需要在这条路上铺设管道;如果在某个位置是十字路口的话,需要将这个位置的管道高度铺设在$y = 2$的位置上面,而在非十字路口的位置,可以铺设在$y = 1$的位置,也可以铺设在$y = 1$的位置,而不同高度的情况下需要对应高度的管道架;设一单位的管道需要的费用是$a$,一单位管道架需要的费用是$b$,求铺设到终点所需的最小费用
被B题卡了快一个小时才看C题。。满足最优子结构和无后效性就是DP了
这次又是写出了C的时候没写出B呢。。。
设$f_{i,j}$为铺设到$i$位置的时候高度为j的最小花费
那么可以得到转移方程
在$s_i$为1的时候:
$$
\begin{cases}
f[i][0] = INF\
f[i][1] = min(f[i-1][0] + 2a,f[i-1][1] + a) + 2b\
\end{cases}
$$
在$s_i$为0的时候:
$$
\begin{cases}
f[i][0] = min(f[i-1][1] + 2a,f[i-1][0] + a) + b\
f[i][1] = min(f[i-1][0] + 2a,f[i-1][1] + a) + 2b\
\end{cases}
$$
时间复杂度:$O(n)$
1 | int T; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Decision`s blog!
评论