#430: 怎麼會這麼慢呢?


beginer (目標Top20 GoGoGo!)

學校 : 國立斗六高級中學
編號 : 2214
來源 : [61.56.15.30]
最後登入時間 :
2010-10-17 09:04:32
a044. 空間切割 -- 許介彥 | From: [218.163.236.5] | 發表日期 : 2008-07-28 20:25

這個題目我是用explicit的解去算的~理論上時間複雜度應該只有O(1)~

為什麼要花200(ms)呢?

我看也有少數人32(ms)就跑完是怎麼辦到的呢?

 
#431: Re:怎麼會這麼慢呢?


POOHccc ()

學校 : 國立臺中技術學院
編號 : 1139
來源 : [220.135.97.253]
最後登入時間 :
2012-02-04 21:23:42
a044. 空間切割 -- 許介彥 | From: [220.135.97.253] | 發表日期 : 2008-07-28 22:29

這個題目我是用explicit的解去算的~理論上時間複雜度應該只有O(1)~

為什麼要花200(ms)呢?

我看也有少數人32(ms)就跑完是怎麼辦到的呢?


剛剛試了一下

你不要用cin、cout

用scanf、printf會快一點 

 
#432: Re:怎麼會這麼慢呢?


beginer (目標Top20 GoGoGo!)

學校 : 國立斗六高級中學
編號 : 2214
來源 : [61.56.15.30]
最後登入時間 :
2010-10-17 09:04:32
a044. 空間切割 -- 許介彥 | From: [61.225.237.116] | 發表日期 : 2008-07-29 11:30

這個題目我是用explicit的解去算的~理論上時間複雜度應該只有O(1)~

為什麼要花200(ms)呢?

我看也有少數人32(ms)就跑完是怎麼辦到的呢? 


剛剛試了一下

你不要用cin、cout

用scanf、printf會快一點 


=======

原來如此...

不過為什麼之前的題目不會有這種情況呢?

之前我一直都是用 cin, cout, 都還滿快的阿~

標準c++應該不可能放任cin, cout 這麼慢吧>"<

 

 
#433: Re:怎麼會這麼慢呢?


POOHccc ()

學校 : 國立臺中技術學院
編號 : 1139
來源 : [220.135.97.253]
最後登入時間 :
2012-02-04 21:23:42
a044. 空間切割 -- 許介彥 | From: [220.135.97.253] | 發表日期 : 2008-07-29 13:46

這個題目我是用explicit的解去算的~理論上時間複雜度應該只有O(1)~

為什麼要花200(ms)呢?

我看也有少數人32(ms)就跑完是怎麼辦到的呢? 


剛剛試了一下

你不要用cin、cout

用scanf、printf會快一點 


=======

原來如此...

不過為什麼之前的題目不會有這種情況呢?

之前我一直都是用 cin, cout, 都還滿快的阿~

標準c++應該不可能放任cin, cout 這麼慢吧>"<

 


當輸入很多的時候,scanf、printf和cin、cout的效率就會有明顯的不同

記得以前也都是用cin、cout的時候

有幾題還會因此TLE,不過改用scanf、printf就沒問題

像是NPSC的題目,testdata通常都很多,用scanf、printf的效率就會大幅領先許多

 

至於為什麼cin、cout會那麼慢,而scanf、printf那麼快

我在猜測會不會是因為是設計方法不同,一個是class、一個是function

對於兩者實際設計的程式碼,就沒去深入研究比較 

 
#434: Re:怎麼會這麼慢呢?


beginer (目標Top20 GoGoGo!)

學校 : 國立斗六高級中學
編號 : 2214
來源 : [61.56.15.30]
最後登入時間 :
2010-10-17 09:04:32
a044. 空間切割 -- 許介彥 | From: [61.225.236.111] | 發表日期 : 2008-07-29 17:12

嗯嗯~原來如此~謝啦~太可笑嘍

 
#997: Re:怎麼會這麼慢呢?


su_horng (su_horng)

學校 : 劍橋大學國王學院
編號 : 1089
來源 : [111.248.42.147]
最後登入時間 :
2014-12-13 21:15:21
a044. 空間切割 -- 許介彥 | From: [220.137.130.20] | 發表日期 : 2008-11-30 19:19

因為cin/cout還有跟scanf/printf/getchar/....等等同步的原因。

如果在一開始加一句:ios::sync_with_stdio(false);

差距就不會太大。

 
ZeroJudge Forum