入队快1年了,看过各种各样的博客,经常看到有人在输入的时候弄得很麻烦,今天我算是弄懂了原来这是优化,getchar的输入速度比scanf要快所以有大量输入数据的时候,想要节省时间,优化输入是个不错的做法。下面给模板
const int read() { char ch = getchar(); while (ch<'0' || ch>'9') ch = getchar(); int x = ch - '0'; while ((ch = getchar()) >= '0'&&ch <= '9') x = x * 10 + ch - '0'; return x; }输出挂也是有滴!
template <class T> inline void print_d(T x) { if (x > 9) { print_d(x / 10); } putchar(x % 10 + '0'); }
鉴于多校的一些迷之卡输入,非要用fread(),这里放个超级输入挂
namespace IO { const int MX = 5e7; char buf[MX]; int c, sz; void begin() { c = 0; sz = fread(buf, 1, MX, stdin); } inline bool read(int &t) { while(c < sz && buf[c] != '-' && (buf[c] < '0' || buf[c] > '9')) c++; if(c >= sz) return false; bool flag = 0; if(buf[c] == '-') flag = 1, c++; for(t = 0; c < sz && '0' <= buf[c] && buf[c] <= '9'; c++) t = t * 10 + buf[c] - '0'; if(flag) t = -t; return true; } } IO::begin(); IO::read(n);