题目链接
N个栅栏,升高1的高度要花费bi
问N个栅栏相邻的高度不同的最小花费
观察画图发现,每个栅栏增高不会太多
考虑dp[i][j] 为第i个栅栏增高j 的最小花费
直接枚举当前栅栏和上一个栅栏的增高 关系
for(int i=2; i<=n; i++){
for(int j=0; j<3; j++){
for(int k=0; k<3; k++){
if(a[i-1]+j!=a[i]+k){
dp[i][k]=min(dp[i][k], dp[i-1][j]+k*b[i]);
}
}
}
}