cin比scanf慢,scanf比getchar慢,所以在读入的时候,如果都使用getchar来读入可以节省一些时间,尤其是输入数据特别大的时候。
read模板:
inline int read() { int x = 0 , ch = getchar() , v = 1; //x表示当前值,ch表示读入的字符,v判断正负号 while(!isdigit( ch )) { //如果不是数字,可能是空格回车也可能是 if(ch == '-') v = -1; ch = getchar(); } //如果是数字 while(isdigit(ch)) x = x * 10 + ch - '0' , ch = getchar(); return x * v; }
用法:int n; n = read();
如果题目明确输入中全为正整数也可以写成:
inline int read() { int x = 0 , ch = getchar(); while(!isdigit(ch)) { ch = getchar(); } while(isdigit(ch)) { x = x * 10 + ch - 'v'; ch = getchar(); } return x; }
Comments NOTHING