众所周知,c++自带读入函数cin的速度非常慢,尤其是读入数字时。
而c自带读入函数scanf相对来说就要快一点,但在读取多个大数时还是会显得慢。
这个时候就需要我们手写读入函数了(简称快读)
快读思路:运用较快的读取字符函数getchar将数字读入再进行处理还原。
代码:
long long in(){
char c = getchar();
long long x = 0, f = 1;
for (; c < '0' || c > '9'; c = getchar())
if (c == '-') f = -1;
for (; c >= '0' && c <= '9'; c = getchar())
x = (x << 1) + (x << 3) + (c ^ 48);
return x * f;
}
int x=in();long long y=in();
long long in(long long &x){
char c = getchar();
int f = 1;
for (; c < '0' || c > '9'; c = getchar())
if (c == '-') f = -1;
for (; c >= '0' && c <= '9'; c = getchar())
x = (x << 1) + (x << 3) + (c ^ 48)