RE求助!!!

P3397 地毯

SCYscy2580 @ 2023-07-17 19:23:38

2个AC,另外都是RE TwT

(是不是代码太差了???)
#include<bits/stdc++.h>
using namespace std;
int x[1000][1000];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int a,b,c,d;
        cin>>a>>b>>c>>d;
        for(int p=a;p<=min(n,c);p++)
            for(int q=b;q<=min(n,d);q++)
                x[p][q]++;
    }
    for(int p=1;p<=n;p++)
    {
        for(int q=1;q<=n;q++)
            cout<<x[p][q]<<" ";
        cout<<endl;
    }

    return 0;
}

有没有大佬看看TwT


by FengYuXinMing @ 2023-07-17 19:28:35

@SCYscy2580 RE可能是数组越界,你数组只开了1000啊


by SCYscy2580 @ 2023-07-17 19:31:03

有道理...


by FengYuXinMing @ 2023-07-17 19:34:08

@SCYscy2580 而且如果你for循环是i=0开始的,那就没问题了,但是你是1开始的!也就是说,最高下标会到1001,然后数组就越界了,就RE了,正好这道题我没A,谢谢你的代码啦(bushi)

狗才抄题解


by FengYuXinMing @ 2023-07-17 19:40:53

@ababbjxzt 哦不对,不是下标回到1001,是数组如果开了1000,从1开始访问,相当于第一个位置,也就是x[0][0],x[1][0],x[0][1],不要了,但是最高数据是1000,而你舍去了一点,就会导致,到那个地方的时候,发现数组没有可访问的了,就报错了。RE全名是R(运行的意思) Error所以一般遇见RE,先看看数组,再看看有没有变量和库函数重名,其他的我就不知道了,我也是个蒟蒻


by FengYuXinMing @ 2023-07-17 19:41:47

@SCYscy2580 话说你们暑假集训前缀和与差分的比赛还可以发帖求助啊?


by SCYscy2580 @ 2023-07-17 19:47:53

。。。


by SCYscy2580 @ 2023-07-17 19:50:08

已过,感谢

(看来是个比我这个蒟蒻强的蒟蒻之神)


by inksanss @ 2023-08-14 15:57:45

@SCYscy2580 基本无误,int 需改long long,

一般来说都是用define int long long 的,

如果你用的话把int main()改成signed,

还有把min去了,这跟时间复杂度没问题,

高精度就不教了(其实也没多大改变),

(刚入洛谷所以是蓝名,以我的能力.....是不是应该是澄名?)


|