随笔分类 - 优化
摘要:序: 在OI比赛中,很多情况下我们可以能通过打表(找规律)或者某些方式发现一个递归式。 例如:f(n) = f(n 1)+f(n 2),(斐波那契数列)。 通常情况下,我们计算f(n)的时间复杂度就是O(n)(分别计算f(1), f(2) ... f(n 1)). 但是当n很大又或者还有其他处理的复
阅读全文
摘要:序: 在之前的测试中,我们比较了四种读入方式,发现使用读入优化是最快的选择,但是我们知道fread()是比它更快的方法。这一次,我们对比四种读入优化,探寻C++读取速度的极限。 分别是getchar()两种方式以及fread()两种方式。 测试数据为1e5,1e6,1e7的大小,每次测试循环5次或7
阅读全文
摘要:序: 相信很多OIer在读取大量数据的时候普遍采取读入优化的方式读入(代码如下,基本类似): inline void read()//无符号型 { static char c; input = 0; c = getchar(); while(c < '0' || c > '9') c = getch
阅读全文
摘要:序: 在上文中对比了四种读入方式的效率,这次将对比三种输出方式的效率。 三种方式分别是:printf(),cout,输出优化(字符输出)。 测试时间依然适用time.h的库函数。 输出代码: inline void print(int curr)//输出优化,递归到最高位,依次输出 { if(cur
阅读全文
摘要:序: 之前在一篇关于vector的push_back和resize()等方式读取数据的效率对比中,我们发现最快的是通过读入优化。这次将测试四种读入方式的效率对比: 两种读入优化,scanf与fscanf。 测试数据采用随机生成的10000000个int型整数,在windows环境下运行。 测试时间由
阅读全文
摘要:引言: 在读取大量数据(数组)时,使用vector会尽量保证不会炸空间(MLE),但是相比于scanf的读取方式会慢上不少。但到底效率相差有多大,我们将通过对比测试得到结果。 测试数据:利用srand()函数生成1e7的随机数组(x[i] ∈ (0, 115000]),最终结果将是读取这1e7(一千
阅读全文

浙公网安备 33010602011771号