讀入優化與輸出優化

C++是一門神奇的學科。。。算法

在讀入/輸出時,咱們常常用到:優化

scanf , cin , printf , cout

可是,在算法競賽中,咱們奉行一個原則:spa

效率第一!blog

因而,便產生了各類各樣的奇技淫巧。。。ci

下面的讀入與輸出優化就是其中之一。get

讀入優化:it

C++自帶的 scanf 已經很快了,可是100W的數據要0.6~0.8s,很明顯,仍是慢了。class

爲何?由於 scanf 帶了許多厲害可是咱們不須要的的特判。效率

因而,讀入優化破殼而出:date

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!

相關文章
相關標籤/搜索