P2800 又上锁妖塔
非常显然
#include<iostream>
#include<cstring>
using namespace std;
int n;
int h[1000001];
long long dp[1000001][2];
int main(){
cin>>n;
memset(dp,0x3f,sizeof(dp));
for(int i=1;i<=n;++i){
cin>>h[i];
}
dp[0][1]=0;
for(int i=1;i<=n;++i){
dp[i][1]=min(dp[i-1][0],dp[i-1][1])+h[i];
dp[i][0]=min(dp[i-1][1],dp[i-2][1]);
}
cout<<min(dp[n][1],dp[n][0]);
return 0;
}