![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
测试
箜瑟_qi
这个作者很懒,什么都没留下…
展开
-
fread读入优化,寻找速度极限
序: 在之前的测试中,我们比较了四种读入方式,发现使用读入优化是最快的选择,但是我们知道fread()是比它更快的方法。这一次,我们对比四种读入优化,探寻C++读取速度的极限。 分别是getchar()两种方式以及fread()两种方式。测试数据为1e5,1e6,1e7的大小,每次测试循环5次或7次,力求测试结果的稳定性。(共测试6次)首先是两种getchar()读入,由于在之前的测试中出现过,原创 2017-04-17 20:39:12 · 5903 阅读 · 3 评论 -
四种读入方式的效率对比
序: 之前在一篇关于vector的push_back和resize()等方式读取数据的效率对比中,我们发现最快的是通过读入优化。这次将测试四种读入方式的效率对比: 两种读入优化,scanf与fscanf。 测试数据采用随机生成的10000000个int型整数,在windows环境下运行。 测试时间由time.h中的函数计算。四种读取方式:int input;inline void read原创 2017-04-15 14:21:32 · 1209 阅读 · 0 评论 -
三种输出方式的效率对比
序: 在上文中对比了四种读入方式的效率,这次将对比三种输出方式的效率。 三种方式分别是:printf(),cout,输出优化(字符输出)。 测试时间依然适用time.h的库函数。输出代码:inline void print(int curr)//输出优化,递归到最高位,依次输出{ if(curr > 9) print(curr/10); putchar(curr%10+原创 2017-04-15 17:10:13 · 770 阅读 · 0 评论 -
比“读入优化”更优的读入方式
序: 相信很多OIer在读取大量数据的时候普遍采取读入优化的方式读入(代码如下,基本类似):inline void read()//无符号型{ static char c; input = 0; c = getchar(); while(c < '0' || c > '9') c = getchar(); while(c >= '0' && c <=原创 2017-04-15 17:23:36 · 428 阅读 · 0 评论 -
关于vector push_back()与其他方式读取数据的效率对比
引言: 在读取大量数据(数组)时,使用vector会尽量保证不会炸空间(MLE),但是相比于scanf的读取方式会慢上不少。但到底效率相差有多大,我们将通过对比测试得到结果。测试数据:利用srand()函数生成1e7的随机数组(x[i] ∈ [0, 115000]),最终结果将是读取这1e7(一千万)的数组所消耗的时间。测试环境:在Linux虚拟机下测试,利用编译命令:time ./t得到原创 2017-04-07 14:04:50 · 4792 阅读 · 0 评论 -
最大流算法之ISAP
序: 在之前的博文中,我解释了关于最大流的EK与Dinic算法,以及它们的STL/非STL的实现(其实没什么区别)。本次讲解的是ISAP算法。‘I’,指 inproved,也就是说ISAP其实是SAP算法的改进。目前没有官方名称。经过测试,ISAP的效率在洛谷的板子题中远胜于EK和Dinic的,速度大概是它们的2-3倍。代码量实际上并没有多大变化,在20行读入优化与不压行的情况下(即下文代码),2原创 2017-04-30 23:22:37 · 697 阅读 · 2 评论 -
vector实现最大流EK算法
序: 在之前的文章中实现了不利用STL实现EK算法,效率也较高。这次我们企图简化代码,减少变量的使用与手写模拟的代码。注意:vector等STL的container在不开O2优化的时候实现同一个效果普遍比手写要慢。源代码如下:/*About: Max_flow_EK_vector Auther: kongse_qiDate:2017/04/22*/#include <bits/stdc+原创 2017-04-22 22:15:22 · 339 阅读 · 0 评论