减少TLE的小技巧(信奥人必看)

前言:

你是否还在为了“TLE”(时间超限)而烦恼?

面对⑩一样的代码无动于衷。。。

分享几个好用的小技巧~

循环:

// 不好的实践
for (int i = 0; i < v.size(); i++) {
    // ...
}
 
// 好的实践
for (register int i = 0; i < v.size(); ++i) {
    // ...
}

tips:使用register定义局部变量,运行快很多。register直接将变量存储在寄存器中。(不可使用取地址符)

把xxx++改为++xxx 速度会更快那么一丢丢。

输入输出:

很多新学c++冲信奥的朋友都惯用cin cout

其实C语言里有一种东西叫scanf printf

超好用!!!

int x;
//scanf
scanf("%d",&x);//双引号内用“%”+特定数据类型缩写来表示变量类型 “,”后用“&”标注对应变量

//cin
cin>>x;//运算符重载

//printf
printf("%d",x);//同样的,“%”占位,不同的是printf无需“&”(取地址符)

//cout
cout<<x;//箭头反过来

简单介绍一下用法~

scanf和printf在使用时需标注变量类型,在编码时稍复杂一些(要记住不同类型的对应缩写),但在面对大数据输入输出时非常快!在OI赛制中常常限制1s时间限制,有时用cin单单输入数据就超时了,非常非常亏!!!此外,printf在格式化输出上非常方便。例如小数点和有效数字保留,左对齐右对齐等等。c++中cout也可以加入通过一大坨达到相同的效果,但相比之下printf完胜。

tips:printf和scanf还有好多好多花式操作和规则用法,这里不多说了,可以看看别人的博客都写的很详尽~

总结:

注重细节,不要因为信息差白白丢了分。

希望能给屏幕前的你一点帮助~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值