#include <iostream>
using namespace std;
int dp[1005];
int a[100005];
int solve(int n){
dp[1]=0;
for(int i=2;i<=n;i++){
dp[i]=min(dp[i-1]+a[i],dp[i-2]+a[i]);
}
return dp[n];
}
int main() {
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cout<<solve(n);
return 0;
}
核心状态转移方程:dp[i]=min(dp[i-1]+a[i],dp[i-2]+a[i])

京公网安备 11010502036488号