为什么写快读会wa完,scanf就ac了(蒟蒻不解)

P1440 求m区间内的最小值

快读很玄学。
by wangmingwei @ 2022-08-27 21:41:23


逝不逝你的快读模板有问题? ```cpp inline long long rd(){ long long x=0;bool ntv=false;char c=getchar(); while((c<'0'||c>'9')&&c!='-')c=getchar();//这句少了? if(c=='-')ntv=true;else x=(c^48);c=getchar(); while(c>='0'&&c<='9'){x=x*10+(c^48);c=getchar();} return ntv?-x:x; } ```
by 654179_qwq @ 2022-08-27 21:45:00


@[lethe_u](/user/683304) 快读这样写。 ```cpp int read() { int x = 0, w = 1; char ch = 0; while (ch < '0' || ch > '9') // ch 不是数字时 { if (ch == '-') w = -1; // 判断是否为负 ch = getchar(); // 继续读入 } while (ch >= '0' && ch <= '9') // ch 是数字时 { x = x * 10 + (ch - '0'); // 将新读入的数字’加’在 x 的后面 // x 是 int 类型,char 类型的 ch 和 ’0’ 会被自动转为其对应的 // ASCII 码,相当于将 ch 转化为对应数字 // 此处也可以使用 (x<<3)+(x<<1) 的写法来代替 x*10 ch = getchar(); // 继续读入 } return x * w; // 数字 * 正负号 = 实际数值 } ```
by wangmingwei @ 2022-08-27 21:45:12


反正 cin + 关同步 + cin.tie(0) = 80Pts.
by Haber @ 2022-08-27 21:50:03


当然是TLE
by Haber @ 2022-08-27 21:50:22


awa
by 654179_qwq @ 2022-08-27 21:56:52


@[lethe_u](/user/683304) 您的快读这一句锅了 ```cpp if(ch<'0'||ch>'9')if(ch=='-')f=-1,ch=getchar(); ``` 应改成 ```cpp if(ch<'0'||ch>'9')if(ch=='-')f=-1;ch=getchar(); ```
by ForMyDream @ 2022-08-27 22:05:21


@[ForMyDream](/user/502758) 你这样写也不行,两个句子要打大括号,打大括号后就好了
by CH_mengxiang @ 2022-08-28 12:08:34


@[PRC_Dreamwastaken](/user/190485) 是的,(我不习惯压行所以出锅了)
by ForMyDream @ 2022-08-28 12:40:34


@[ForMyDream](/user/502758) 谢谢,ac了
by lethe_u @ 2022-08-28 18:52:22


|