冷的不能再冷的知识

P1908 逆序对

qwqSW @ 2024-08-16 15:04:26

我还是头一次知道。。。
局部变量比全局变量快5.02倍。。。
以下这两份都是暴力代码
如果把n和cnt开全局喜提25pts
提交记录
但如果把n和cnt变成局部变量就50pts
提交记录
而且好像能快半秒。。。
我们拿这题考试亲测。。。
快读快写都救不回来的那种。。。


by houpingze @ 2024-08-16 15:06:09

草???有点意思


by donnieguo @ 2024-08-16 15:07:12

???能放一下代码吗 @qwqSW


by qwqSW @ 2024-08-16 15:11:16

这是开全局变量的代码

#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
const int N=5e5+5;
int n,a[N],cnt;
int main(){
    //freopen("inverse.in","r",stdin);
    //freopen("inverse.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            if(a[i]>a[j]) cnt++;
        }
    }
    printf("%d",cnt);
    return 0;
}

这是开局部变量的代码

#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
const int N=5e5+5;
int a[N];
int main(){
    //freopen("inverse.in","r",stdin);
    //freopen("inverse.out","w",stdout);
    int n,cnt=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            if(a[i]>a[j]) cnt++;
        }
    }
    printf("%d",cnt);
    return 0;
}

@donnieguo


by Liujiaxiang1 @ 2024-08-16 15:12:26


by User774258 @ 2024-08-16 15:12:45

啊?有没有卡常大佬解释一下,这怎么回事


by dbycs11 @ 2024-08-16 15:13:07

这太抽象了


by Btls @ 2024-08-16 15:18:57

太震撼了,以后都开局部变量。


by Liujiaxiang1 @ 2024-08-16 15:19:47

是考试时的分数


by dbycs11 @ 2024-08-16 15:20:09

@2020wjn 不赋初值会见祖宗


by _H17_ @ 2024-08-16 15:32:08

@User774258 似乎是优先会把局部变量扔到Cache里面吧


| 下一页