在c++中 cin 的讀入效率是很低很低的,一般我們可以用scanf,
但有時一些**題也會tle,比如noip2011 道路修建,讀入資料超大的,
所以我們可以用快速讀入(貌似只能讀數字tat……)
輸入字元轉換成數字,效率高,在輸入資料量特別大的時候採用快速讀入可以避免超時
當然正負可以保證。
inline
int read()
或者
inline int
read()
while(c<='9'&&c>='0')
return k*f;
}
今天做noip2017d1t2被io框架搞了四個小時沒除錯出來,thsh告了乙個好辦法,記一下。
在這道題中涉及一種輸入先是int,然後是時間複雜度o(n^x)或者是o(1)這裡的空格很容易就被char給吃掉,所以我寫的是
int l,q; //q是輸入的時間複雜度,0為o(1),非零時x為o(n^x)
char t,kk; //輸入用快取
cin>>l; //輸入行
scanf("%c",&kk); //吃回車
scanf("o(%c",&t); //輸入複雜度,注意scanf的妙用
if(t=='1')//o(1)
else
scanf("^%d)",&q); //複雜度輸入結束
大佬thsh告訴蒟蒻lkr
1.cin/cout別用,太慢!
2.scanf/printf不要用%c,太危險!同理也不要想著利用c裡scanf的語言特性進行過濾
那怎麼辦呢?
用%s!
%s是處理陣列的,當然也可以處理字元陣列,但是他可以想讀取int一樣遇到空格,回車,換行就停下來,就像scanf%d一樣穩!
於是對陣列進行乙個解析即可,附上記錄方便複習:
演算法競賽中的輸入輸出框架
include define inf 10000000 輸入一些整數,求出它們的最小值 最大值和平均值 保留3位小數 輸入保證這些 數都是不超過1000的整數。標準輸入輸出 int main if x max n printf d d 3f n min max,double s n return 0...
字串的輸入與輸入
一 使用陣列的方法 缺點 不能接受含有空格的字串 char s 1000 scanf s s printf s s 先定義字元變數s 用char s表示 然後在定義變數s後面加上,裡面寫上資料大小。一般沒告訴資料範圍,資料一般開1000就行。例如,資料是100,我們開110就行。然後用輸入和輸出函式...
SQLSERVER中的邏輯讀與物理讀
在使用set statistics io on語句來統計sql語句或儲存過程的i o的時候,sqlserver會顯示邏輯讀與物理讀,那麼邏輯讀與物理讀是什麼意思呢?表 systempara 掃瞄計數 1,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0...