输入处理

快速读入

    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')替代乘法和减法,提升读取速度。

全部评论

相关推荐

想进开水团喝开水:哦 给我一个 就算你真拿到牛友也会为你开心的
点赞 评论 收藏
分享
12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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