c++快读快写
快读快写是利用 \(getchar()\) 和 \(putchar()\) 比 \(cin\) 和 \(cout\) 速度快的特点来对输入和输出进行优化
快读
int read(){
int x=0,f=1;
char ch=getchar();
while(ch < '0' || ch > '9'){
if(ch=='-') f = -1;
ch = getchar();
}
while(ch >='0' && ch <= '9'){
x = (x<<3) + (x<<1) + ch - '0';
ch = getchar();
}
return x*f;
}
不分类型的快读
template <typename T>
inline void read(T &x){
x=0;T f=1;char ch=getchar();
while(ch<48 || ch>57){if(ch=='-')f=0;ch=getchar();}
while(ch>=48 && ch<=57) x=x*10+ch-48,ch=getchar();
if(!f) x=-x;
}
快写
void write(int x){
if(x<0){//判断负数
x=-x;
putchar('-');
}
if(x>9) write(x/10);//位值拆数,递归
putchar(x%10+'0');//按位输出
}