如何看待在 OI ACM 賽事廣為使用的快速讀入整數?

時間 2021-05-12 07:24:17

1樓:PlanarG

記得很久以前無聊的時候和同學比過cin和scanf哪個更快,我用cin,他用scanf

當然,我用的cin不是普通的cin,而是

cin.tie(0), ios::sync_with_stdio(false);

實測證明,我的程式的速度大約是他的1.2倍左右在演算法競賽中,程式需要考慮的乙個重頭就是時間複雜度而對於省選或者ACM這樣的大型比賽,卡常是家常便飯的事甚至有些題目的輸入資料規模太大,以至於只能通過給乙個資料生成器的方式來減少輸入量

比如所以能優化的地方當然要拼命優化

最後附上乙個光速讀入模板

inline

char

nc()

template

T>inline

void

read(T&x)

2樓:李魔劍

用scanf不用cin

主要的原因是scanf比cin快很多

以及scanf控制讀入格式的能力比cin強至於GetInt什麼的我是從來沒用過

因為只要出題的人腦子每毛病

那麼把演算法速度提上去的效果肯定比這個明顯

3樓:知三叉乎

人家問怎麼看待輸入外掛程式,一群人跑來說人家外掛程式不行也是醉了。

拋結論:

工程學上這種東西意義不大。

演算法競賽裡比的是演算法,如果需要輸入外掛程式才能ac,證明題目有問題。然而沒辦法,比賽比的就是ac題數。

4樓:Erona Wan

貼上我用的...

intInt()

5樓:phreeze

這題寫了好久,複雜度都對,但是一直tle,好煩躁。

題解:用isap,dinic會超時。

-「我qnmlgb。」

這題寫了好久,複雜度都對,但是一直tle,好煩躁。

題解:用樹狀陣列,線段樹會超時。

-「我qnmlgb。」

這題寫了好久,複雜度都對,但是一直tle,好煩躁。

題解:用劃分樹,主席樹會超時。

-「我qnmlgb。」

這題寫了好久,複雜度都對,但是一直tle,好煩躁。

題解:用快速讀入,scanf會超時。

-「我qnmlgb。」

某日接到通知,出幾道xx聯合賽的題,要稍微有質量有難度的。

於是嘴角浮現出邪魅的笑。

或曰:得饒人處且饒人。冤冤相報何時了?放下屠刀,立地成佛。

樓上的各位大俠,大概都是殺人的能手。諸位互相炫耀自己的屠人利器,怡然自得的樣子令我等弱雞不禁毛骨悚然。

原答案:

n^3的演算法,就算把常數優化乙個1/6,也a不了n^2*logn的題,除非出題人的資料出得很蠢。

出題人可以把資料出得有多蠢呢?打個比方,去年長春站(霧

6樓:PoPo QQQ

一般情況下沒有必要用,感覺可能會被卡才用

而且這麼寫簡直低效,杯水車薪

要這麼寫:

namespace IStream{

const int L=1<<15;

char buffer[L],*S,*T;

inline char Get_Charif(S==TT=(S=buffer)+fread(buffer,1,L,stdinif(S==T) return EOFreturn *Sinline int Get_Intchar cint re=0for(c=Get_Char();c<'0'||c>'9';c=Get_Charwhile(c>='0'&&c<='9're=(re<<1)+(re<<3)+(c-'0'),c=Get_Charreturn re

BZOJ卡rank屢試不爽

因為快速讀入而WA掉的我見多了,總結起來就是要麼你打乙個永遠不會錯的模板然後寫個題就寫一遍把它打熟,要麼老死不用。我屬於後者。

7樓:MuZhou

WA的原因一般是因為資料比較特別 getint() 不夠完善

但是在演算法比賽中這種讀入方式確實非常有優勢有時候能生生的讓乙個低效演算法AC

我聽過很多noi選手(不下5個但也不少了)推薦這種讀入方式所以為了防止WA最好根據輸入資料進行適當更改

如何看待在ACM ICPC World Final 2017中,清華大學取得第6名的成績?

我一直都認為毛子和蒙古人是人類中的奇蹟,他們雖然野蠻,但他們的腦容量卻是最大的,也就解釋了為什麼他們如此會擴張領土,在體現智力的一些專案上總能佔據不錯的位置。下圖是世界原住民腦容量分布圖 輸了就是輸了,不找藉口。團隊態度還是很正的,他們盡力了。可能繼續增加綜合實力,可能才是王道吧。綜合實力 心理 技...

如何看待賽事X的賽程規則

Blacky就是小黑啦 利益相關 薛丁格的貓隊員,決賽二辯,喵喵雪餅領隊鈴培的朋友。更新一下。得,沒得更新了。劉大神說,你別嘲諷了,人家是女生 刪了吧刪了吧。那就刪了唄。那個 這事兒怎麼都能鬧到知乎見啊 昨天打完比賽還和隊友開玩笑說,茂茂和賽娜姐姐命是真的硬,讓我這個決賽必輸的差一口氣辯手,都能逆天...

如何看待線上問診?

喬喬 線上問診可以解決小問題,可以給很多疾病以引導,減輕焦慮感,無論中醫 西醫還是需要面見醫生才能解決問題。西醫需要查血及各種化驗來參考數值。中醫需要望聞問切,畢竟個體不同,需要詳細診療。 無望的胖胖 看待乙個事情好壞,要分優缺點來看 那麼線上問診的優點是啥 1 減輕三甲醫院病患壓力 2 避免醫患關...