码迷,mamicode.com
首页 > 其他好文 > 详细

读入优化

时间:2018-03-11 02:36:41      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:数据流   mat   getchar   cin   get   div   line   return   eof   

数据流大 \(TLE\) 了怎么办?

那就用读入优化,这可比 \(cin\)\(scanf\) 快多了

可以把读入优化当作模板记下来,有一些位运算看不懂没有关系,可以慢慢理解

利用 \(getchar\)

template <typename T>
inline void read(T &x){
    x=0; __R char ch; __R bool flg=0;
    while (ch=getchar(),ch<48||57<ch) flg^=ch==‘-‘; x=(ch&15);
    while (ch=getchar(),47<ch&&ch<58) x=(x<<1)+(x<<3)+(ch&15);
    if (flg) x=-x;
}

利用 \(fread\) 将所有的数据读入, \(IN\_LEN\) 就是一次读入的字符数,循环读入

inline char getc(){
    static const int IN_LEN=10000000;
    static char buf[IN_LEN],*p1=buf,*p2=buf;
    return p1==p2&&(p2=(p1=buf)+fread(buf,1,IN_LEN,stdin),p1==p2)?EOF:*p1++;
}
template <typename T>
inline void read(T &x){
    x=0; __R char ch; __R bool flg=0;
    while (ch=getc(),ch<48||57<ch) flg^=ch==‘-‘; x=(ch&15);
    while (ch=getc(),47<ch&&ch<58) x=(x<<1)+(x<<3)+(ch&15);
    if (flg) x=-x;
}

读入优化

标签:数据流   mat   getchar   cin   get   div   line   return   eof   

原文地址:https://www.cnblogs.com/xuanyi/p/8542472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!