codeforces 暴力5e9 的秘密武器!GCC编译加速优化
太激动了!我无意中发现了cf暴力5e9的秘密!我有一次比赛之后无意看了一份大佬的代码,发现他代码就是纯暴力,我以为是因为cf评测机真的太强了才能跑的5e9,结果自己的暴力就过不了,一直都想不明白,后来我无意研究了一下别人的代码,发现了一个神奇的东西…
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization ("unroll-loops")
这些是GCC编译器的优化选项,用于在编译代码时进行优化,以提高代码的性能。具体解释如下:
- #pragma GCC optimize(“Ofast”):启用优化级别为Ofast的编译器优化选项。Ofast编译器优化级别会启用更多的优化选项,包括忽略浮点语义、对未定义行为不做检查等。这个选项会产生更快的代码,但可能会降低代码的可移植性。
- #pragma GCC target(“avx,avx2,fma”):指示编译器生成能够运行在包含AVX、AVX2和FMA指令集的处理器上的代码。这些指令集是现代CPU中常见的指令集,可以加速某些计算密集型操作的执行。
- #pragma GCC optimization (“unroll-loops”):启用循环展开优化选项。循环展开是一种编译器优化技术,它将循环体内的语句复制多次,以减少循环次数和分支语句的开销。这个选项会产生更快的代码,但可能会增加代码的大小和复杂度。
需要注意的是,这些选项在不同的情况下可能会产生不同的效果,因此需要根据具体情况进行选择和调整。
题目
https://codeforces.com/problemset/problem/1398/C
#pragma GCC optimize("Ofast")
#pragma GCC target(