ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

卡常技巧

2022-05-05 13:35:43  阅读:171  来源: 互联网

标签:GCC ch 技巧 ++ pragma 卡常 buf optimize


普通快读快写:

long long rd(){char ch=getchar();long long x=0,f=1;while(ch<'0' || ch>'9'){if(ch=='-') f=-1;ch=getchar();}
                        while('0'<=ch && ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
void wr(long long x){if(x<0){putchar('-');x=-x;}if(x>9) wr(x/10);putchar(x%10+'0');}

fread()/fwrite():

namespace IO
{
    FILE *input(stdin), *output(stdout);
    class qistream
    {
        static const size_t SIZE = 1 << 12, BLOCK = 32;
        FILE *fp;
        char buf[SIZE];
        int p;

    public:
        qistream(FILE *_fp = stdin) : fp(_fp), p(0) { fread(buf + p, 1, SIZE - p, fp); }
        inline void flush() { memmove(buf, buf + p, SIZE - p), fread(buf + SIZE - p, 1, p, fp), p = 0; }
        template <class T>
        qistream &operator>>(T &x)
        {
            x = 0, p + BLOCK >= SIZE ? flush() : void();
            bool flag = false;
            for (; !isdigit(buf[p]); ++p)
                flag = buf[p] == '-';
            for (; isdigit(buf[p]); ++p)
                x = x * 10 + buf[p] - '0';
            x = flag ? -x : x;
            return *this;
        }
        inline char getch() { return buf[p++]; }
    } qcin(input);
    class qostream
    {
        static const size_t SIZE = 1 << 12, BLOCK = 32;
        FILE *fp;
        char buf[SIZE];
        int p;

    public:
        qostream(FILE *_fp = stdout) : fp(_fp), p(0) {}
        ~qostream() { fwrite(buf, 1, p, fp); }
        inline void flush() { fwrite(buf, 1, p, fp), p = 0; }
        template <class T>
        qostream &operator<<(T x)
        {
            int len = 0;
            p + BLOCK >= SIZE ? flush() : void(), x < 0 ? (x = -x, buf[p++] = '-') : 0;
            do
                buf[p + len] = x % 10 + '0', x /= 10, ++len;
            while (x);
            for (int i = 0, j = len - 1; i < j; ++i, --j)
                swap(buf[p + i], buf[p + j]);
            p += len;
            return *this;
        }
        inline void putch(char ch) { buf[p++] = ch; }
    } qcout(output);
}
using namespace IO;

 

火车头:

 1 #pragma GCC optimize(2)
 2 #pragma GCC optimize(3)
 3 #pragma GCC target("avx")
 4 #pragma GCC optimize("Ofast")
 5 #pragma GCC optimize("inline")
 6 #pragma GCC optimize("-fgcse")
 7 #pragma GCC optimize("-fgcse-lm")
 8 #pragma GCC optimize("-fipa-sra")
 9 #pragma GCC optimize("-ftree-pre")
10 #pragma GCC optimize("-ftree-vrp")
11 #pragma GCC optimize("-fpeephole2")
12 #pragma GCC optimize("-ffast-math")
13 #pragma GCC optimize("-fsched-spec")
14 #pragma GCC optimize("unroll-loops")
15 #pragma GCC optimize("-falign-jumps")
16 #pragma GCC optimize("-falign-loops")
17 #pragma GCC optimize("-falign-labels")
18 #pragma GCC optimize("-fdevirtualize")
19 #pragma GCC optimize("-fcaller-saves")
20 #pragma GCC optimize("-fcrossjumping")
21 #pragma GCC optimize("-fthread-jumps")
22 #pragma GCC optimize("-funroll-loops")
23 #pragma GCC optimize("-fwhole-program")
24 #pragma GCC optimize("-freorder-blocks")
25 #pragma GCC optimize("-fschedule-insns")
26 #pragma GCC optimize("inline-functions")
27 #pragma GCC optimize("-ftree-tail-merge")
28 #pragma GCC optimize("-fschedule-insns2")
29 #pragma GCC optimize("-fstrict-aliasing")
30 #pragma GCC optimize("-fstrict-overflow")
31 #pragma GCC optimize("-falign-functions")
32 #pragma GCC optimize("-fcse-skip-blocks")
33 #pragma GCC optimize("-fcse-follow-jumps")
34 #pragma GCC optimize("-fsched-interblock")
35 #pragma GCC optimize("-fpartial-inlining")
36 #pragma GCC optimize("no-stack-protector")
37 #pragma GCC optimize("-freorder-functions")
38 #pragma GCC optimize("-findirect-inlining")
39 #pragma GCC optimize("-frerun-cse-after-loop")
40 #pragma GCC optimize("inline-small-functions")
41 #pragma GCC optimize("-finline-small-functions")
42 #pragma GCC optimize("-ftree-switch-conversion")
43 #pragma GCC optimize("-foptimize-sibling-calls")
44 #pragma GCC optimize("-fexpensive-optimizations")
45 #pragma GCC optimize("-funsafe-loop-optimizations")
46 #pragma GCC optimize("-fdelete-null-pointer-checks")

 

标签:GCC,ch,技巧,++,pragma,卡常,buf,optimize
来源: https://www.cnblogs.com/Gokix/p/ka-chang-ji-qiao.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有