跳房子是小朋友玩的游戏。地面上画出一连串格子,每个格子里有一个整数,小朋友从外面跳入格子,并继续往前跳,直到跳出所有格子。每次跳跃的规则是,可以跳入下一格或下下格或下下下格。怎么跳能让落脚格子里的数的累加和最小。
输入格式:
第一行输入格子数 n (1<n<100),第二行输入从起点处到终点处每个格子里的数,该数小于10。
输出格式:
输出最小累加和。
输入样例:
在这里给出一组输入。例如:
4
3 3 2 5
输出样例:
在这里给出相应的输出。例如:
2
用的动态规划
#include<bits/stdc++.h>
using namespace std;
#define L 110
int n;
int a[L];
int v[L];
int main()
{cin>>n;for(int i=0;i<n;i++){cin>>a[i];}v[0]=a[0];v[1]=a[1];v[2]=a[2];for(int i=3;i<n;i++){v[i]=a[i]+min(v[i-1],min(v[i-2],v[i-3]));}cout<<min(v[n-1], min(v[n-2],v[n-3]));return 0;
}