实名吐槽CF!!!

震惊!x*10(x<<3)+(x<<1)快近500ms!!

CF的编译器是什么鬼,神tm有毒吧???
这是一个悲伤的故事——

在这里插入图片描述
今天上午辛辛苦苦肝了这题,结果T了。。。
什么玩意儿啊,我明明和标算一模一样的两个log啊,神tm怎么就T了。。
以为是线段树写丑了,然后我就不停卡常,1h后终于过了test 18,然后T在了test 24。。
还看了别人的代码,为什么vector和struct和cin在cf上跑那么快啊。。然而我本机开不开O2都跑得和它一样快啊。。

然后我就开始手动O2,还是过不了,不抱希望地又粘了一个fread,然后它竟然过了。。过了。。过了。。。足足快了将近500ms。。1e5的数据量,fread和getchar差500ms??

意识到好像有点不太对劲,于是我又试了下scanf,和fread只差了30ms。。CF的getchar到底是得有多慢啊。。怎么会比scanf还慢。。

然后我又试了一下,发现并不是getchar的问题,把(x<<3)+(x<<1)改成x*10之后,它的速度就又变成了我们熟悉的那个比scanf快,比fread慢的普通读优。。这两个不是等价的吗,要快也应该是(x<<3)+(x<<1)快啊。。

我自闭了。。真的。。。

然后我又重新试了一下(x<<3)+(x<<1),莫名变成了一样的。。

我真傻,真的,我单知道我把getchar改成fread就快了500ms,我忘了我还加了O3和Ofast。。
原来我寻寻觅觅,全是因为我的愚蠢。

全剧终。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值