zoukankan      html  css  js  c++  java
  • 快速读入——卡常终结者(快读)

    什么是卡常?

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

    先看一组数据(by my friend cdsidi)

    [单位毫秒,100000int读入测试]

    快读(带inline):47

    scanf输入:1140

    快读:50

    scanf输入:1121

    快读:50

    scanf输入:1122

    快读:52

    scanf输入:1147

    快读:50

    scanf输入:1239

    快读:51

    scanf输入:1189

    快读:50

    scanf输入:1134

    快读:51

    scanf输入:1142

    快读:51

    scanf输入:1135

    快读:50

    scanf输入:1125

    快读:54

    scanf输入:1128

    可以看到,基本上快读稳定在scanf的40分之一

    快读可以避免大部分卡常

    基本思路:

    快速读入代码

     1 inline int read()
     2 {
     3     int fu=1,k=0;
     4     char a=getchar();
     5     while(a<'0'||a>'9')
     6     {
     7         if(a=='-')fu=-1;
     8         a=getchar();
     9     }
    10     while(a>='0'&&a<='9')
    11     {
    12         k=k*10+a-'0';
    13         a=getchar();
    14     }
    15     return fu*k;
    16 }
  • 相关阅读:
    Python格式化字符 %s %d %f
    FTP学习笔记
    万维网
    TCP笔记
    TCP流量控制
    笔记传输层
    传输层协议
    网络层
    以太网笔记
    计算机网络物理层
  • 原文地址:https://www.cnblogs.com/lihaolin/p/11268792.html
Copyright © 2011-2022 走看看