OI中整数的读入优化

将整数一个字符一个字符地读入,再转成整数,比直接作为整数读入快。

在读入大规模的整数数据时比较有效。

代码如下:

inline void read_int(int &num)
{
    char c; while (c = getchar(), c < ‘0‘ || c > ‘9‘);
    num = c - ‘0‘; while (c = getchar(), c >= ‘0‘ && c <= ‘9‘) num = num * 10 + c - ‘0‘;
}

OI中整数的读入优化,布布扣,bubuko.com

时间: 2024-08-06 20:06:07

OI中整数的读入优化的相关文章

浅谈OI中的底层优化!

众所周知,OI中其实就是算法竞赛,所以时间复杂度非常重要,一个是否优秀的算法或许就决定了人生,而在大多数情况下,我们想出的算法或许并不那么尽如人意,所以这时候就需要一中神奇的的东西,就是底层优化: 其实底层优化比较简单,比如我们经常使用的 register还有快读,这些都可以进行优化.还有fread,但是fread在一些情况(尤其是在重要的的比赛时)但是还是给出下面的优化 const int L=1<<20|1; char buffer[L],*S,*T; #define getchar()

论OI中各种玄学卡常

当你在写程序的时候一般出现过这种无比悲剧的情况: 你讨厌卡常?下面有二则小故事: 作为一个经常出题的人,其实很多时候出题时的画风是这样的:"我有一个绝妙的\(O(nlog^2n)\)的算法,我来出道题吧""咦怎么只能跑 \(5w\) 啊,好咸鱼啊,我要让它能跑 \(10w\),嗯现在 \(10w\) 只要 \(0.3s\) 了,要不努把力跑个 \(20w\) 吧"然后就没有然后了.. 开O2之后FFT会比不开快几倍? 不开\(O2\):\(NTT\)比\(FFT\)

关于读入优化的最终分析

关于读入优化的最终分析 摘要 身为一只以卡常为生的蒟蒻,总想着通过一些奇技淫巧来掩饰优化常数. 于是本文章就非正式地从最初的开始到最终的终止来谈谈在OI种各种主流.非主流读入的速度以及利弊. 序言 随着算法的发展各种数据结构等劲题出现,这些题除了思维难度的提高还带来者输入数据的增多(特别的有:uoj.ac上的一道题需要选手自己生成数据,而数论题往往输入较少),对于有追求有理想的选手快速读入是必不可少的技能. 尽管市面上有不同的主流读入优化,但是大多都是基于fread的,其余的只是一些小变动. 而

读入优化&amp;输出优化

读入优化:读入优化只是针对整数,由于getchar()读字符非常的快,所以采用getchar()来进行读入,下设输入的数为x 负数处理:用一个标志变量f,开始时为1,当读入了'-'时,f变为-1,最后x*=f即可 绝对值部分处理:getchar()每次只能读一位,所以每当读了一位s时,x*=10,为s留位置,由于s为字符,需要减去'0'才能转为整数即:x=x*10+s-'0' 关于细节: 很多时候有多余的空格或者其它的一些无关字符输入,处理时需要注意排除 代码: 1 void read(int

一些常见的优化:读入优化,滚动数组

1.读入优化 我们平时所使用的scanf,cin速度都较慢,当读入的数据达到10^5规模以上时,就会开始显现劣势 而c中自带的getchar函数读入速度较快,可以用来优化数字的读入速度. 1 inline int get_num() 2 { 3 int num = 0; 4 char c; 5 bool flag = false; 6 while ((c = getchar()) == ' ' || c == '\n' || c == '\r'); 7 if (c == '-') flag =

A*算法在OI中的应用

1.A*算法 我们普通的搜索算法往往复杂度都是指数级,OI中这样的复杂度无法满足我们的要求.这时我们一般都会进行一些剪枝优化,但在有些题目中却可以有更加巧妙的方法--A*算法. A*算法作为一种基础的启发式搜索,它不同于DFS和BFS将所有情况进行遍历,它能从所有情况中选出较优的再进行遍历.因此,它让搜索从"瞎搜"转化到了"有目标的搜索".那么如何确定较优的情况便是关键所在. A*算法中核心是一个估值函数,我们可以通过它来得到每种情况的优劣.用公式表示便是: f(n

GCC&amp;&amp;GDB在OI中的介绍

序言 这本来是用Word写的,但是后来我换了系统所以只能用markdown迁移然后写了...... $\qquad$本文主要投食给那些在Windows下活了很久然后考试时发现需要用命令行来操作时困惑万分以及觉得GDB很好吃的人 $\qquad$以及---- $\qquad$经常眼瞎看不见i++和j++的区别 $\qquad$经常访问a[-1]然而使编译器无可奈何(除非在使用O2的情况下的明显访问越界)的人 ... $\qquad$正式地说,本文介绍GCC&&GDB命令在OI中的应用. 提要

读入优化 &amp;&amp; 输出优化

qwq算是一个板子随笔吧 快读我在某大佬的博客中找到了更短的代码 但是这个写习惯了就改不了了qwq 其实是我不想改 废话好多 直接贴代码 1 //读入优化 2 inline int read(){ 3 char ch, c; 4 int res; 5 while (ch = getchar(), ch < '0' || ch > '9') c = ch; 6 res = ch - 48; 7 while (ch = getchar(), ch >= '0' && ch &

c++ 读入优化、输出优化模板

0. 在有些输入数据很多的变态题中,scanf会大大拖慢程序的时间,cin就更慢了,所以就出现了读入优化.其原理就是一个一个字符的读入,输出优化同理,主要使用getchar,putchar函数. 1. int型读入优化(long long的只要把x改成long long型即可): 1 #include<cctype> 2 inline int read() 3 { 4 int x=0,f=0; char ch=0; 5 while(!isdigit(ch)) {f|=ch=='-';ch=ge