nbut_1010 魔法少女 dp

来源:互联网 发布:阿里云code 私有 编辑:程序博客网 时间:2024/04/28 09:25
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define inf 0x7f7f7f7f#define N 10005int a[N];int dp[N][2];int main(){int n;while(scanf("%d",&n)!=EOF){for(int i=1;i<=n;i++){scanf("%d",&a[i]);fill(dp[i],dp[i]+2,inf);}dp[1][0]=a[1];dp[1][1]=0;dp[0][0]=0;dp[0][1]=0;for(int i=2;i<=n;i++){dp[i][0]=min(dp[i-1][0],dp[i-1][1])+a[i];dp[i][1]=min(dp[i-1][0],dp[i-2][0]);;}printf("%d\n",min(dp[n][0],dp[n][1]));}return 0;}

//对于某一层楼如果是爬上来的,那么对于前一层:可以是爬上来的,也可以是飞上来的

如果是飞上来的,那么可以是从前一层飞上来的,则前一层是爬上来的,或者是从上上层飞上来的,则上上一层是爬上来的。

如图:

原创粉丝点击