程式設計技巧 快讀

2021-08-21 07:08:59 字數 1272 閱讀 8634

我們知道,scanff比cin快,在讀入量大的時候便可以優化時間複雜快.

快讀就是一種讀入很快的讀入方法,可以優化時間複雜度.

快讀很快,比cin與scanf都快,可以極大優化時間複雜度

1.我們知道cin和scanf不能混用,但在保留小數的時候不得不用printf,我們知道cin和printf不能混用,這時候便可以用快讀read,再用printf

2.很快…….過會兒在舉例中可以得到

int讀是很慢的,我們需要用更快的字元的讀入方法getchar進行讀入.

用字元讀入,再轉換成數字,最後輸出.

inline

int read()//如果輸入

是字元,判斷是否是負數

while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//輸入數字並統計

return s*w;//輸出結果

}

【問題描述】

劉天澤告訴陳卓他有完全記憶能力,劉天澤能把所有記憶都記得一清二楚。不過陳卓沒有相信,於是劉天澤準備好撲過去要咬陳卓的頭。陳卓為了防止年紀輕輕就頭皮壞死,只好找了一串只由小寫字母組成的序列,每次他將提問劉天澤某個小寫字母第k次出現的位置。但是陳卓自己也算不過來,只好求助於你。

【輸入】

總共1+n+m行。第一行為兩個正整數n和m,n表示序列的長度,m表示陳卓提問的次數。接下來n行,每行乙個小寫字母,分別表示序列中的n個小寫字母。接下來m行,每行乙個小寫字母c(小寫字母c後有且僅有乙個空格)和兩個正整數k,ans,表示陳卓提問小寫字母c第k次出現的位置(保證小寫字母c出現的次數不少於k),以及劉天澤的答案ans。

【輸出】

總共1行。若劉天澤的答案全對,則輸出「ak」,否則輸出劉天澤錯誤的次數。

【輸入輸出樣例1】

index.in index.out

5 2

i n

d e

x n 1 2

x 1 5 ak

【輸入輸出樣例2】

index.in index.out

5 3

y h

y a

k y 2 1

y 1 1

k 1 5 1

【資料範圍】

對於60%資料,1≤n≤1000,1≤m≤1000。

對於100%資料,1≤n≤500000,1≤m≤500000,每個字母出現次數不超過50000。

根據 資料得出:cin80,read(快讀)100,可見快讀是需要的.

技巧 快讀快寫

inline int read 輸入方式 int main template inline void read t x for x 0 isdigit ch ch getchar x x 10 ch 0 if sign x x 輸入方式 int main inline char nc inline ...

快讀快寫 模板

include include include using namespace std int read while isdigit ch return s f void write int x if x 9 write x 10 putchar x 10 0 return int main 一些問...

模板 快讀快輸lite版

我把快讀快寫裝進了乙個模板中。本模板使用fread。之所以是lite版,是因為它只整合了整型的輸入輸出與字元的輸出優化。雖經過博主大量測試,但仍可能存在bug,可以私信向博主反饋以及時修改。後期會出乙個所有型別輸入輸出優化的模板。讀入乙個字元變數c,使用io c或c io.get 會讀取換行 空格等...