关于C++的一个玄学发现
  • 板块学术版
  • 楼主​hsl2363​
  • 当前回复39
  • 已保存回复39
  • 发布时间2020/4/29 20:13
  • 上次更新2023/11/7 03:38:19
查看原帖
关于C++的一个玄学发现
51005
​hsl2363​楼主2020/4/29 20:13

我在做一道分块题时发现别人只要跑1s左右的点我要跑8s,就开了一个变量t记录了一下扫过的块总数

然后运行程序的时候它突然跑的飞起,只用了1.2s

经过多次测试后发现我的8s代码只要开个全局变量t并加一句t++就能跑的飞起,而且关闭O2优化后仍然很快

以下是循环的部分(除了定义和这里外没有再用到t)

for (int i = bel[l]; i < R; i++)
	if (f[i][k])
    {
		k += f[i][k];
		t++;
	}

注释掉这个t++或是把t开成函数内的局部变量就会回到8s

在其他机子上跑也是一样的情况

是c++底层有什么神奇的优化吗

码风是Vscode的默认配置格式化出来的

2020/4/29 20:13
加载中...