zoukankan      html  css  js  c++  java
  • ACM常数优化

    这篇博客并不是什么算法讲解,仅仅是作为记录(老是搞忘)

    在我们使用C++的时候,cin的使用非常方便,但是cin的速度非常非常非常慢,各位在某些OJ做题的时候就会发现存在T的情况,其实我们可以通过对C++的输入输出关流,这样能让cin和cout跑的更快。

    写代码的时候把一下几句放在主函数中就行:

    ios::sync_with_stdio(false);//写了using namespace std;
    std::ios::sync_with_stdio(false);//没写using namespace std;
    //选一个就行
    

    具体食用方法如下:

    #include<bits/stdc++.h>
    using namespace std;
    int main(void)
    {
        ios::sync_with_stdio(false);
        int a;
        cin>>a;
        cout<<a<<endl;  
        return 0;
    }
    

    然后就是优化:

    #pragma-GCC-optimize("-Ofast");//这个跑代码快的飞起,比O2还快,当然请勿在NOIP中作死
    附上一个大佬的优化讲解:传送门

    具体食用方法如下:

    #include<bits/stdc++.h>
    #pragma-GCC-optimize("-Ofast");//放在这里^_^
    using namespace std;
    int main(void)
    {
        ios::sync_with_stdio(false);
        int a;
        cin>>a;
        cout<<a<<endl;  
        return 0;
    }
    

    updata:

    //四十行加速代码,慎用
    #pragma GCC optimize(3)
    #pragma GCC target("avx")
    #pragma GCC optimize("Ofast")
    #pragma GCC optimize("inline")
    #pragma GCC optimize("-fgcse")
    #pragma GCC optimize("-fgcse-lm")
    #pragma GCC optimize("-fipa-sra")
    #pragma GCC optimize("-ftree-pre")
    #pragma GCC optimize("-ftree-vrp")
    #pragma GCC optimize("-fpeephole2")
    #pragma GCC optimize("-ffast-math")
    #pragma GCC optimize("-fsched-spec")
    #pragma GCC optimize("unroll-loops")
    #pragma GCC optimize("-falign-jumps")
    #pragma GCC optimize("-falign-loops")
    #pragma GCC optimize("-falign-labels")
    #pragma GCC optimize("-fdevirtualize")
    #pragma GCC optimize("-fcaller-saves")
    #pragma GCC optimize("-fcrossjumping")
    #pragma GCC optimize("-fthread-jumps")
    #pragma GCC optimize("-funroll-loops")
    #pragma GCC optimize("-fwhole-program")
    #pragma GCC optimize("-freorder-blocks")
    #pragma GCC optimize("-fschedule-insns")
    #pragma GCC optimize("inline-functions")
    #pragma GCC optimize("-ftree-tail-merge")
    #pragma GCC optimize("-fschedule-insns2")
    #pragma GCC optimize("-fstrict-aliasing")
    #pragma GCC optimize("-fstrict-overflow")
    #pragma GCC optimize("-falign-functions")
    #pragma GCC optimize("-fcse-skip-blocks")
    #pragma GCC optimize("-fcse-follow-jumps")
    #pragma GCC optimize("-fsched-interblock")
    #pragma GCC optimize("-fpartial-inlining")
    #pragma GCC optimize("no-stack-protector")
    #pragma GCC optimize("-freorder-functions")
    #pragma GCC optimize("-findirect-inlining")
    #pragma GCC optimize("-fhoist-adjacent-loads")
    #pragma GCC optimize("-frerun-cse-after-loop")
    #pragma GCC optimize("inline-small-functions")
    #pragma GCC optimize("-finline-small-functions")
    #pragma GCC optimize("-ftree-switch-conversion")
    #pragma GCC optimize("-foptimize-sibling-calls")
    #pragma GCC optimize("-fexpensive-optimizations")
    #pragma GCC optimize("-funsafe-loop-optimizations")
    #pragma GCC optimize("inline-functions-called-once")
    #pragma GCC optimize("-fdelete-null-pointer-checks")
    

    再更新

        调用数组的时候花费的时间比调用普通变量的时间长,可能是卡常的点,例题:传送门

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 交换Easy
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法训练 矩阵乘方
    QT中给各控件增加背景图片(可缩放可旋转)的几种方法
    回调函数实现类似QT中信号机制
    std::string的Copy-on-Write:不如想象中美好(VC不使用这种方式,而使用对小字符串更友好的SSO实现)
  • 原文地址:https://www.cnblogs.com/Mangata/p/13362922.html
Copyright © 2011-2022 走看看