输入处理

快速读入

    ll f=1;char c;
    for(x=0,c=getchar();c<'0'||c>'9';c=getchar()) if(c=='-') f=-1;
    for(;c>='0'&&c<='9';c=getchar()) x=(x<<1)+(x<<3)+(c^48); x*=f;
}

功能:高效读取大整数 n(适配 (10^{18}) 范围)。

优化点:用位运算(x<<1 等价 (x2),x<<3 等价 (x8))和字符异或(c^48 等价 c-'0')替代乘法和减法,提升读取速度。

全部评论

相关推荐

10-29 19:42
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务