[NOIP2016 提高组]的题,我过不了

https://www.luogu.com.cn/problem/P1563
我的代码如下:


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    int a[100010],b[100010],d,l;
    string c[100010];
    l=0;
    for(int i=0;i<=n-1;i++)
    {
        cin>>a[i]>>c[i];
    }
    for(int i=0;i<=m-1;i++)
    {
        cin>>b[i]>>d;
        if(i==0)
        {
            if(b[i]==0 and a[i]==0) l-=d;
            if(b[i]==1 and a[i]==1) l-=d;
            if(b[i]==1 and a[i]==0) l+=d;
            if(b[i]==0 and a[i]==1) l+=d;
            if(l>n) l-=n;
            if(l<0) l=n+l;
        }
        else
        {
            int j=l;
            if(b[i]==0 and a[j]==0) l-=d;
             if(b[i]==1 and a[j]==1) l-=d;
            if(b[i]==1 and a[j]==0) l+=d;
            if(b[i]==0 and a[j]==1) l+=d;
            if(l>n) l-=n;
            if(l<0) l=n+l;
        }
        
    }
    cout<<c[l];
} 

为什么过不了哇?

img


我大概看了一下你的代码,主要是有上面的这几个问题,然后你的代码我已经修改成功提交了,有什么问题可以关注我或者继续提出来,希望能够帮到你,如果觉得有帮助的话可以给个采纳呗👀

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7635145
  • 以下回答来自chatgpt:

    问题分析:

    根据您提供的代码和问题描述,问题可能出在以下几个方面:

    1. 代码逻辑错误:代码中可能存在逻辑错误导致无法通过测试。我们需要仔细检查代码逻辑是否符合题目要求。

    2. 输入数据格式错误:题目可能对输入数据格式有要求,若格式不对可能导致运行错误。我们需要确保输入数据的格式正确。

    3. 代码中可能存在语法错误:可能在代码编写过程中,出现了语法错误或者语法不符合题目的要求,导致无法编译通过。我们需要检查代码是否符合语法要求。

    4. 代码的时间复杂度过高:题目的时间限制可能较短,如果代码的时间复杂度过高,导致运行时间超出限制,无法通过测试。我们需要优化算法确保代码能够在规定的时间范围内运行。

    解决方案:

    1. 首先,我们需要仔细阅读题目要求,确保代码逻辑符合题目要求。

    2. 检查输入数据是否符合题目要求,尤其是输入的整数值是否在合理范围内。

    3. 检查代码中是否有语法错误,例如缺少分号、括号不匹配等问题。可以使用编译器或者集成开发环境的语法检查功能来进行检查。

    4. 检查代码的时间复杂度是否符合要求。可以考虑优化算法或者数据结构,减少不必要的计算和遍历。

    5. 将代码进行调试和测试,检查是否能够正确运行。可以使用一些输入样例进行测试,验证代码的正确性。

    如果您已经完成了以上步骤但问题仍未解决,请提供更多细节和错误信息,以便我们能够更好地分析和解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^