很直观的线性DP很好想。
但容易爆内存,因为$i-1$阶段找到$i$阶段的时候,$i-1$一定有一个在$p[i-1]$,$i$一定有一个在$p[i]$。
那么有:
$f_{i,x,y}=f_{i-1,x,y}+c_{p_{i-1},p_{i}}\\f_{i,x,p_{i-1}}=f_{i-1,x,y}+c_{y,p_i}\\f_{i,y,p_{i-1}}=f_{i-1,x,y}+c_{x,p_i}$

还可以滚掉一维。