快读 && 快输

快读 && 快写

快读和快写,就是利用字符串的一些特殊性质进行读入,输出;在一定情况下(输入数据十分庞大),可以大大的缩短时间。

注意这个快读是非常的重要的,我想这应该是想要在OI这条路上走远的所有OIer必须会的东西。养成每次写题目都加上快读的好习惯,有可能会在关键的时候救你一命!

普通快读

inline void read(int &x){
   int s = 0, w = 1; char ch = getchar();
   while(ch < '0' || ch > '9'){ if(ch == '-') w = -1; ch = getchar(); }
   while(ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
   x = s*w;
   return ;
}

getchar ,就是将数字当字符读取,比scanf快很多
w用来判断数字是不是负号,
如果想的话可以再压一下行

普通快写

inline void out(int a){
    if(x<0){
        putchar('-');
        x=-x;
    }
    if(a>9)write(x/10);
    putchar(a%10+'0');
}  

快写也非常简单,利用int与ASCII码之间转换,实现快读快写的目的。

最后来一发灵魂快读

int read(){
    int a
    cin>>a;
    return a;
}

猜你喜欢

转载自www.cnblogs.com/jiangfengyang/p/10884048.html