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