跳跃比赛

 

这应该算背包问题吧

#include<bits/stdc++.h>
using namespace std;
int i,n;
int st=0;
int maxx,j;
int a[100000];
int t[100000];
int temp[1000000];
int main(){
	while(cin>>n){
		maxx=n;
		i=0;
		st=0;
		for(i=0;i<n;i++){
			cin>>a[i];
		}
		i=0;
		t[0]=0;
		for(i=1;i<n;i++){
			t[i]=i;
			temp[i]=i-1;
			for(j=0;j<i;j++){
				if(t[j]+1<t[i]&&j+a[j]>=i){
					t[i]=t[j]+1;
					temp[i]=j;
				}
			}
		}
/*		for(i=0;i<n;i++){
			cout<<"time"<<i<<" "<<t[i]<<endl;
		}
*/		cout<<t[n-1]<<endl;
//<<" "<<temp[n-1]<<endl;
	}
}

  

 

posted @ 2020-03-06 17:11  vdk  阅读(246)  评论(0)    收藏  举报