Java快读
如果输入数据总量 ≥ 10^5,则应该考虑使用快读。
尤其是:总整数个数 ≥ 100000,或输入文件大小 ≥ 几 MB
且语言是 Java,因为 Java 的 Scanner 会非常慢,本质上是“正则解析器”,时间复杂度远高于预期。
static class FastScanner {
private final InputStream in = System.in;
private final byte[] buffer = new byte[1 << 16];
private int ptr = 0, len = 0;
private int read() throws IOException {
if (ptr >= len) {
len = in.read(buffer);
ptr = 0;
if (len == -1) return -1;
}
return buffer[ptr++];
}
int nextInt() throws IOException {
int c;
while ((c = read()) <= ' ') {
if (c == -1) return -1;
}
int sign = 1;
if (c == '-') {
sign = -1;
c = read();
}
int val = c - '0';
while ((c = read()) > ' ') {
val = val * 10 + (c - '0');
}
return val * sign;
}
}

浙公网安备 33010602011771号