跳跃比赛

这应该算背包问题吧
#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;
}
}

浙公网安备 33010602011771号