qzezoj 1578 锁妖塔
题面传送门
按照题目要求递推即可
代码实现:
#include<cstdio>
#define min(a,b) ((a)<(b)?(a):(b))
using namespace std;
int n,f[10039],a[10039];
int main(){
register int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&a[i]);
for(i=1;i<=n+1;i++){
f[i]=f[i-1]+a[i];
if(i>=2) f[i]=min(f[i-2]+a[i],f[i]);
if(i>=3) f[i]=min(f[i-3]+a[i],f[i]);
}
printf("%d",f[n+1]);
}