读入优化新姿势——学习笔记
2017-05-24 08:46
183 查看
震惊!99.9%的oier都不知道。用了此方法,暴力立马变标算!
最近学习了一个新的函数fread,可以从文件中整块读入信息,速度很快。基于这个函数,我们可以写一个新的getchar():
fread的4个参数分别表示从哪里开始存,一个量是几字节(char就是1),想要读入几个,输入文件。执行完后会返回成功读入了几个。
buf数组就是记一下读入的信息。p1p2分别指向当前buf中的头和尾。如果p1==p2说明需要再fread一整块。
用它来写读优效果很好,输入流很大的时候比用getchar()读优快大概2倍多。
那种标算复杂度比较紧的,写个玄学暴力加读优可能就AC了。
不过要千万注意这个不能与scanf混用。第一次调gc()之前才能用scanf。
最近学习了一个新的函数fread,可以从文件中整块读入信息,速度很快。基于这个函数,我们可以写一个新的getchar():
inline char gc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++; }
fread的4个参数分别表示从哪里开始存,一个量是几字节(char就是1),想要读入几个,输入文件。执行完后会返回成功读入了几个。
buf数组就是记一下读入的信息。p1p2分别指向当前buf中的头和尾。如果p1==p2说明需要再fread一整块。
用它来写读优效果很好,输入流很大的时候比用getchar()读优快大概2倍多。
那种标算复杂度比较紧的,写个玄学暴力加读优可能就AC了。
不过要千万注意这个不能与scanf混用。第一次调gc()之前才能用scanf。
相关文章推荐
- Hibernate HQL优化学习笔记
- JavaScript学习笔记 及 JAVAScript优化
- CUDA学习笔记之程序优化
- Web应用程序性能优化学习笔记
- Perl学习笔记三: 再次尝试优化文件I/O
- SQL 优化学习笔记(四)
- SEO 学习笔记3——动态网页优化
- SEO 学习笔记2——搜索引擎优化的核心
- SQL 优化学习笔记(一)
- 数据库优化学习笔记(一)
- oracle优化学习笔记
- 大地SEO教程学习笔记之七:单页优化
- SEO 学习笔记5——搜索引擎优化的重点
- Perl学习笔记二: 尝试优化文件读取
- 【解剖】Oracle-----Oracle优化-学习笔记(1.1)
- [MDX学习笔记之五]优化Set操作——SUM中的CrossJoin
- [学习笔记] ASP.NET应用程序性能优化
- JavaScript 学习笔记 之 优化(转载)
- 读入图像文件并显示【C#图像处理学习笔记】
- ORACLE SQL性能优化(学习笔记)