关于快读
  • 板块灌水区
  • 楼主Xalfz_
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/5/9 13:23
  • 上次更新2024/5/9 18:16:47
查看原帖
关于快读
1148621
Xalfz_楼主2024/5/9 13:23
#define GC (Pa == Pb && (Pb = (Pa = Buf) + fread(Buf, 1, 1 << 20, stdin), Pa == Pb) ? EOF : *Pa++)
char Buf[1 << 20], *Pa, *Pb;

inline LL Read() {
	register LL Ans = 0, Sgn = 1;
	register char Ch = GC;
	while (!isdigit(Ch) && Ch != '-') {
		if (Ch == '-') {
			Sgn = -1;
		}
		Ch = GC;
	}
	while (isdigit(Ch)) {
		Ans = Ans * 10 + (Ch - '0');
		Ch = GC;
	}
	return Ans * Sgn;
}
n = m = Read();
n = Read(), m = Read();

但是上面 mm 直接输出 nn 了。

小蒟蒻实在不懂,想来问一下各位大佬,这两句表达意思一样,但是为什么第一个不正确,第二个正确呢?(大概是缓冲区的问题?)

2024/5/9 13:23
加载中...