博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法•日更•第五十五期】知识扫盲:什么是卡常数?
阅读量:5288 次
发布时间:2019-06-14

本文共 562 字,大约阅读时间需要 1 分钟。

▎前言

  小编之前一直都认为卡常数读音是ka chang shu,实际上是qia chang shu。

  希望小伙伴们不要读错了。

▎定义

  程序被卡常数,一般指程序虽然渐进复杂度可以接受,但是由于实现/算法本身的时间常数因子较大,使得无法在OI/ICPC等算法竞赛规定的时限内运行结束。

  常数被称为计算机算法竞赛之中最神奇的一类数字,主要特点集中于令人捉摸不透,有时候会让水平很高的选手迷之超时或者超空间。(copy自百度)

  所以,卡常数并不是数论中的那些卡特兰数什么的,只有一个含义:你的程序可能是O(n
2),但是题解也是O(n
2)的,可是你为什么过不了呢?原因就是常数太大,比方说别人的+可能要1ms,那么你可能就要2ms,所以你的程序就会被很小的常数卡掉,所以我们在写代码时,要采取一些措施才能避免被卡常数。
▎解决方案
  详见小编的博客:
  下面还有一些方案:
  • 多用scanf和printf,cin和cout很慢,切忌不可混用。
  • 三元运算符? :比if else快,但不比if快。
  • 频繁使用的数用register,和inline一个用法,只不过有可能把变量存入CPU寄存器,来减少时间。

转载于:https://www.cnblogs.com/TFLS-gzr/p/11394752.html

你可能感兴趣的文章
effective c++ 7: Declare destructors virtual in polymorphic base classes
查看>>
ActionBar
查看>>
Ajax上传文件到C#Action中
查看>>
实现android上解析Json格式数据功能
查看>>
最短路算法--模板
查看>>
利用树莓派3搭建可以发射无线局域网的微型服务器
查看>>
Linux查看系统的基本信息
查看>>
eclipse jsp 文字设置
查看>>
Android--多线程之AsyncTask
查看>>
cxdbImage以及图像显示
查看>>
36、UI contrast and settings
查看>>
HDU 2070 Fibbonacci Number
查看>>
骰子作业
查看>>
C++虚函数与纯虚函数用法与区别(转)
查看>>
jq中的substring(x)和substring(x,y) 字符截取用法
查看>>
BNUOJ-22868-Movie collection(树状数组)
查看>>
C# POST与Get数据
查看>>
扩展django的User的部分方法
查看>>
ISAP算法对 Dinic算法的改进
查看>>
池化层pooling
查看>>