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里面吧