• 读入优化与输出优化


    C++是一门神奇的学科。。。

    在读入/输出时,我们经常用到:

    scanf , cin , printf , cout
    

    但是,在算法竞赛中,我们奉行一个原则:

    效率第一!

    于是,便产生了各种各样的奇技淫巧。。。

    下面的读入与输出优化就是其中之一。

    读入优化:

    C++自带的 scanf 已经很快了,但是100W的数据要0.6~0.8s,很明显,还是慢了。

    为什么?因为 scanf 带了许多厉害但是我们不需要的的特判。

    于是,读入优化破壳而出:

    inline int read(){
    	int date=0,w=1;char c=0;
    	while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
    	while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
    	return date*w;
    }

    调用时,只需要:

    int x;
    x=read();
    

    即可。

    效率超级高!

    输出优化:

    有读入优化,就有输出优化:

    inline void write(int x){
    	if(x<0){putchar('-');x=-x;}
    	if(x>9)write(x/10);
    	putchar(x%10+'0');
    }
    

    调用时,只要:

    int x=10;
    write(x);
    

    即可。

    时间大幅降低!

    总结:

    C++中还有各种各样的奇技淫巧,比如什么:

    inline , register
    

    等。

    好好利用它们,可以卡掉那些TLE的点,甚至逆转AC!

  • 相关阅读:
    redis全量复制和部分复制
    tp5怎么使用find_in_set
    ms1
    nginx+php上传大文件配置
    培训第一天!
    PHP中使用CURL(五)
    PHP中使用CURL(四)
    PHP中使用CURL(三)
    PHP中使用CURL(二)
    PHP中使用CURL(一)
  • 原文地址:https://www.cnblogs.com/Yangrui-Blog/p/8905855.html
Copyright © 2020-2023  润新知