问题标题: 酷町堂:求助!快来人!!尽量快一点!!!

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n;
    int x[1111];
    while(n--){
        cin>>m;
        for(int i=1;i<=m;i++){
            cin>>x[i];
        }
        bool f=0;
        for(int i=1;i<m;i++){
            if(i+x[i]>=m){
                cout<<"1\n";
                f=1;
                break;
            }
        }
        if(!f){
            cout<<"0\n";
        }
    }
    return 0;
}

2782,wa0,样例过了,求大神指导,瓜分80豆豆

汪宇航在2021-10-16 13:59:09追加了内容

SDING

汪宇航在2021-10-28 21:14:20追加了内容

@武建豪 

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int pos=1,m;
    int a[1900];
    for(int i=1;i<=n;i++){
        cin>>m;
        for(int j=1;j<=m;j++){
            cin>>a[j];
        }
        while(1){
            if(a[pos]+pos>=m){
                cout<<1;
                break;
            }
            if(a[pos]==0){
                cout<<0;
                break;
            }
            int t=0,maxn=0;
            for(int j=pos+1;j<=pos+a[pos];j++){
                if(a[j]+j>maxn){
                    t=j;
                    maxn=a[j]+j;
                }
            }
            pos=t;
        }
        cout<<endl;   
    } 
    return 0;
}
WA10,???????????????????????????????????????????????????????????

 


0
已采纳
武奕楷
武奕楷
新手天翼
新手天翼
int pos=1;
        while(1){
            if(a[pos]+pos>=m){
                cout<<1;
                break;
            }
            if(a[pos]==0){
                cout<<0;
                break;
            }
            int t=0,maxn=0;
            for(int j=pos+1;j<=pos+a[pos];j++){
                if(a[j]+j>maxn){
                    t=j;
                    maxn=a[j]+j;
                }
            }
            pos=t;
        }
        cout<<endl;

输入完的部分(a[]=x[])

0
武奕楷
武奕楷
新手天翼
新手天翼

你这个想得太简单了一点,等**完试我给你发主要部分

0
被禁言 张一宸
张一宸
新手守护
新手守护

草!NB!

你什么时候学到贪心了???

你到底提前学了多少?

0
蔡乐毅
蔡乐毅
高级光能
高级光能

不是这么做滴。

你想如果a跳不到a+1也肯定跳不到,对不?

所以遍历每个点,再在循环中遍历前面的点,看有没有点能跳到这个点。

如果不能 或最后一个点是0   就输出0

如果全能跳到,且 最后一个不是零 输出1

蔡乐毅在2021-10-16 15:42:17追加了内容

口误,最后可以是0

我要回答