wh3z_wsc 2011-11-10 04:25:00
点我顶贴
收藏
删除
程序如下:
#include<iostream>
using namespace std;
int n,a,f[10100][2];
int min(int x,int y){
return x<y?x:y;}
int main(){
int i;
cin>>n;
for(i=2;i<=n+1;i++){
cin>>a;
f[i][0]=min(f[i-1][1]+a,f[i-1][0]+a);/*由于到达这个第i层是跳上来的,所以到达i-1层或i-2层一定是爬上来的*/
f[i][1]=min(f[i-1][0],f[i-2][0]);
}
cout<<min(f[n+1][0],f[n+1][1]);
return 0;}