博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读入优化与输出优化
阅读量:4878 次
发布时间:2019-06-11

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

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!

转载于:https://www.cnblogs.com/Yangrui-Blog/p/8905855.html

你可能感兴趣的文章
开环增益对负反馈放大电路的影响
查看>>
MySQL-ERROR 2003
查看>>
SQL Server2012-SSIS的包管理和部署
查看>>
JavaScript内置对象
查看>>
如何把js的循环写成异步的
查看>>
ER图是啥?
查看>>
too many include files depth = 1024错误原因
查看>>
HTTP协议详解(三)
查看>>
Android零基础入门第84节:引入Fragment原来是这么回事
查看>>
解析SQL Server之任务调度
查看>>
参考资料地址
查看>>
(转)为什么所有浏览器的userAgent都带Mozilla
查看>>
织梦字段属性筛选
查看>>
无法加载csopenglc.dll;找不到指定模块
查看>>
08.路由规则中定义参数
查看>>
Pandas截取列部分字符,并据此修改另一列的数据
查看>>
java.lang.IllegalArgumentException
查看>>
pytest
查看>>
python爬取某个网站的图片并保存到本地
查看>>
【Spark】编程实战之模拟SparkRPC原理实现自定义RPC
查看>>