在演算法競賽中,主用Python,會有什麼壞處?haleyk101982018-02-21 15:10:27

謝邀,不過本人不常用 python ,所以以下見解可能會帶點偏見……

py 本來的優勢 -

擴充的library很多 : 不好意思,正賽就只有standard library, 也就是跟C++打平

語法簡單 : 搬到競賽上優勢不大,競賽對語法需求不高,能寫基本的class, function, var就足矣。

py 在競賽的劣勢 -

慢 : 這……很難救回來。

起步慢 : 大佬們都在用C++, 教材也是用C++寫的,所以就算你主用py還是得學C++看教學。

不過要是當天有熟習好現場編譯環境又剛好是我讀到第一道水題的話,有時候我還是會用 python 搶首血的。

在演算法競賽中,主用Python,會有什麼壞處?栗子2018-02-21 16:56:59

蟹腰

對於ACM來說

python除了慢,沒啥缺點

然後,這個慢,emmmm等著吃T吧

在演算法競賽中,主用Python,會有什麼壞處?知乎使用者2018-02-21 19:55:16

我在ec賽場上親自證明了python複雜度*10估計還是會T的……

人家C++比我多個log都過了……

在演算法競賽中,主用Python,會有什麼壞處?曉鋒192018-02-21 23:24:33

會見到滿屏的Time Limit Exceeded

在演算法競賽中,主用Python,會有什麼壞處?Sweetlemon2018-02-22 09:03:27

我具有Pythoner和OIer的雙重身份呢!

其實對我來說有點矛盾,畢竟我是愛Python的,但是又要在這裡較為客觀地評價Python。

Python是解釋型語言,速度上確實不能和C/C++以及Pascal這些編譯型語言相比。雖然有些OJ對Python似乎有倍數時間的優惠,但是未來在主要的OI競賽上是什麼情況還是個未知數,至少目前中國NOI系列是沒有這方面的訊息。

Python目前沒有一個適應演算法競賽環境的輸入函式,沒有C/C++的scanf/cin,從raw_input或input裡面要輸入是比較辛苦的,但是這個問題可以透過官方函式庫來解決。

Python還有一點不足就是Python的資料結構似乎過於抽象化,選手沒有直接運算元組和指標的機會,這可能無益於滲透計算機底層的知識。

雖說有這些劣勢,但Python其實還是一種適合表達思維的語言,或許能節省程式設計師的時間吧,也許會更便於教學。而且似乎浙江這邊的新教材教的是Py?為了和這方面對接,我想CCF或許會有所行動吧。所以個人認為Py還是有前途的(雖然可能我在我的OI生涯中不會用Py作為程式碼提交語言)。

即使不把Python作為程式碼提交語言,拿來寫寫對拍器/資料生成器還是很好的。況且Python是一門明星語言,誰知道未來會怎樣呢?所以學一下未嘗不可。