问题标题: 酷町堂:2782 跳一跳(0分)

0
0
已解决
高梓荣
高梓荣
新手天翼
新手天翼

----------我是一个链接而已----------

求思路,

高梓荣在2018-11-07 19:43:21追加了内容

以上不算,请看下面的0分代码;

#include<bits/stdc++.h>
using namespace std;
int n,m,box[10005];
int main()
{
    cin>>n;
    while(n--){
        cin>>m;
        for(int i=1;i<=m;i++)
            cin>>box[i];
        int pos=1;//当前位置 
        while(pos<m){
            if(pos+box[pos]>=m){
                cout<<1<<endl;
                break; 
            }
            if(box[pos]==0){
            cout<<0<<endl;
            break; 
        }
        int jmp=0,maxp=-1;
        for(int i=1;i<=box[pos];i++){
            if(pos+i+box[pos+i]>maxp){
                    maxp=pos+i+box[pos+i];
            jmp=i;
            }

        }
        pos+=jmp;
    }
    return 0;
}
}

PS:跟沈老师抄的,应该该是细节上的问题,求解!!!


1
已采纳
孙志浩
孙志浩
资深守护
资深守护

cin>>n;
a[1]=l;
for(i=1;i<=n;++i)

{
    cin>>w;
    if(a[i]==l)
        for(j=1;j<=min(w,n-i);++j)
            a[i+j]=l;
}

a[i]表示第i个格子是否能到达

w表示第i个格子可走格数

(其他部分请自行补充)

0
0
我要回答