一 競賽簡介
萬惡之源 各種競賽知識的匯總喳挑。
1. 賽制介紹
https://zhuanlan.zhihu.com/p/129311302
2. 平臺介紹
leetcode 主找工作,周賽/雙周賽滔悉,每周都有伊诵,時間短,可查看別人的代碼回官,學(xué)習(xí)別人的優(yōu)秀代碼和解題思路曹宴,成長快
codeforces 主競賽,每周也會舉辦比賽(賽題質(zhì)量高歉提,全英文)
洛谷 (主競賽笛坦,國內(nèi)的高質(zhì)量平臺,常舉行比賽苔巨,模板題講解清晰版扩,大佬多)
賽氪(主競賽通告,國內(nèi)的OJ平臺侄泽,主要優(yōu)點是國內(nèi)競賽的新聞會在這個平臺發(fā)布庸毫,可多關(guān)注)
殴涤冢客 (主工作,也有周賽,要自己處理輸入輸出挠乳,比leetcode更貼近工作題/競賽題)
其他大學(xué)的OJ也有不錯的冰悠,例如北大的poj鸟缕, 杭電的hduoj鸭限, 電子科大的cdoj
3. 競賽介紹
藍(lán)橋杯(一般四月份舉行初賽,認(rèn)可度高析桥,獲獎難度低司草,非常推薦參加) 獲獎可獎學(xué)金加分/申請實踐分(不需要助教拿學(xué)分了,可選擇拿工資)尤其推薦參加python組泡仗,c++組一般是打ACM的真大佬埋虹,卷不過;java組參賽人數(shù)太少沮焕;python組研究生和本科生同組吨岭,優(yōu)勢明顯。報名費300塊峦树,可信軟學(xué)院代繳辣辫,獲得國獎還有額外獎勵。
傳智杯 (一年一屆魁巩,一般10-12月舉辦)
全國大學(xué)生算法設(shè)計與編程挑戰(zhàn)賽 (每個季度一次比賽急灭,才舉辦到第二屆,認(rèn)可度一般)
電子科技大學(xué)ACM校賽(鏈接是2021年的谷遂,沒有官網(wǎng)葬馋,一般四五月份舉行,請關(guān)注《成電微教務(wù)》肾扰,會有報名通知)
“聯(lián)發(fā)科技杯”電子科技大學(xué)IEEEXtreme極限編程校內(nèi)賽(鏈接是2021年的畴嘶,沒有官網(wǎng),一般四五月份舉行《IEEEUESTC》公眾號集晚,會有報名通知)
華為軟件精英挑戰(zhàn)賽(一般三四月份舉行窗悯,不是常規(guī)的編程算法競賽,偏工程中的實際應(yīng)用偷拔,感覺難度略大)
中興捧月杯(一般四五月份舉行蒋院,難度比華為軟挑低)
獲取比賽消息的渠道:信軟學(xué)院有個學(xué)科競賽的qq群(1074685825),計算機(jī)學(xué)院通知群也有部分競賽通知莲绰,賽氪平臺的通知欺旧,相關(guān)的主辦方公眾號等。
二 我的一點經(jīng)驗
1. 語言選擇
- C++? java? python? even javascript?
- C++ 新入坑的必選
- 對數(shù)據(jù)控制的極致蛤签,內(nèi)置的容器辞友,運行效率極高,使用簡單震肮;內(nèi)置的算法踏枣,快排/二分查找/找下界等,可自定義數(shù)據(jù)結(jié)構(gòu)钙蒙,極其的好用茵瀑;
例題 力扣周賽第三題 - 運行效率極高,很多數(shù)據(jù)規(guī)模臨界的用例躬厌,C++能過马昨,但是python過不了;
例題 IEEEXtreme極限編程校內(nèi)賽 (比賽完看不了題了) - 例題講解的示例代碼很多都是C++ 寫的,包括力扣周賽的排行榜前段的大佬;
- 各種OJ必定支持的一門語言.
- python 藍(lán)橋杯必選 深度學(xué)習(xí)之友
- 藍(lán)橋杯暴打本科生的不二之選扛施,只會暴力解法都能一等獎的天選之組;
- 極致的代碼簡化鸿捧,神奇的切片操作,寫起來非常省心;
- 跑模型必須要會的一門語言疙渣,即使不搞神經(jīng)網(wǎng)絡(luò)算法匙奴,畢設(shè)也一定會要跑模型的;
- 主流OJ支持較好,但是比較老的OJ就不那么好了妄荔。(說的就是成電的OJ,ACM校賽居然只支持C++和java)
- java 工作之友
- 后端開發(fā)必會泼菌,spring全家桶要用的賊溜谍肤;
- 用來寫競賽算法嘛,就恩恩恩恩哗伯。荒揣。。個人不太合適焊刹,既不如C++運行效率高系任,沒指針操作;也不如python代碼簡潔虐块,有點雞肋俩滥。之前ACM國際大賽上有隊伍用過java,后來也棄用了贺奠。當(dāng)然用來刷題霜旧,練java的熟練度,方便找工作的也很好敞嗡,有不少同學(xué)也是這么做的颁糟;
- 主流OJ的支持較好,目測比python好喉悴。
- javascript 前端玩家打算法比賽的首選
- 之前看彥哥和然哥用過棱貌,我自己不會,感興趣的咨詢他們吧(很慚愧)箕肃;
- 支持的平臺較少婚脱,leetcode是支持的,但是主流的OJ支持率很慘淡勺像。
- 總結(jié):不同語言有不同的適用環(huán)境障贸,一般意義上來說沒有誰優(yōu)誰劣,只能說對某個任務(wù)是否好用吟宦。
2. 編輯工具選擇
- vim 永遠(yuǎn)的神
- 主鍵盤毀滅者篮洁,可完全無視鼠標(biāo)的存在
- 單文件編輯最好用的編輯器
- 服務(wù)器文件編輯的最好選擇,也許是唯一的選擇
- 功能強(qiáng)大的代碼補(bǔ)全插件殃姓,C++袁波,python,java均支持
- 在編輯器內(nèi)執(zhí)行命令的特性讓人欲罷不能
- 內(nèi)置的gdb調(diào)試工具蜗侈,代碼調(diào)試較為方便
-
陡峭的學(xué)習(xí)曲線讓人望而生畏
編輯器學(xué)習(xí)曲線.png - 其他資料:
vim環(huán)境搭建
vim半小時入門官方教程篷牌。命令行執(zhí)行下方代碼:(如果要指定語言,用后面兩個命令即可踏幻,分別是英文和中文枷颊,推薦用英文版,方便編輯)
vimtutor
vimtutor en
vimtutor zh
簡要講解vim的三種模式。
- pycharm python之友
- 不用過多解釋夭苗,寫python的首選工具
- idea java必選
- 也不用過多解釋信卡,寫java的首選工具
3. 常用技巧
- 刷題的結(jié)構(gòu)組織
按照各個OJ平臺作為一級目錄,題目編號作為二級目錄听诸,二級目錄下的是源代碼和輸入輸出文件坐求。整個文件夾用git做版本管理蚕泽,可推送到自己的github上晌梨,避免由于系統(tǒng)崩潰等原因?qū)е碌臄?shù)據(jù)丟失。 - 輸入重定向
./a.out <in.txt
python3 my.py <in.txt
- 輸入/輸出重定向
./a.out <in.txt >out.txt
python3 my.py <in.txt >out.txt
- 結(jié)果自動對比
diff out.txt std.txt
- 對拍
對拍是個啥须妻,用來做什么的 - 暴力打表找規(guī)律
一個網(wǎng)友的例子
古人云:騙分過樣例仔蝌,暴力出奇跡。暴搜掛著機(jī)荒吏,打表出省一敛惊。
俗話說:十年OI一場空,不用long long見祖宗绰更。
- 藍(lán)橋杯如何查文檔
python是提供了內(nèi)置package的使用文檔的瞧挤,查詢方式如下:
python3
>>> help()
- 輸出帶有固定字符的題目,一定要用CV儡湾,別過于相信自己的眼睛和手
之前比賽有題目的輸出只有Y5S!
或者NO
特恬,比賽結(jié)束的時候一群人覺得自己代碼沒錯,結(jié)果提交上去一直WA
徐钠,有人就提示說輸出的不是YES!
中間的是個5
. - 要有平和的心態(tài)
wa.jpg
不是大佬的話癌刽,建議還是跟榜做題,挑AC
多的題目做尝丐。
也不要死磕显拜,某題做不出來,或者一直WA
爹袁,該放棄就放棄远荠。
三 背包問題
經(jīng)典中的經(jīng)典 背包九講
例題:
01背包
完全背包
多重背包(二進(jìn)制優(yōu)化)
混合背包
二維費用背包
分組背包
依賴背包