演算法進階
❶ 關於兩年軟微路徑分析
首要目標,軟微上岸。
目標分數,450。
一年打基礎,兩年top2。主要將需要努力的方向分拆成三個模塊,分別是數學、英語、408。
江蘇省省賽省一、國賽手襲進決賽(因為決賽時間沖突,不參加)。
大英競獲獎,兩次六級考試最終分達到600+,雅思兩次最終分7.5+。
首先是把四門課全部學通,過三遍以上。另外,著手准備CCF和PAT甲級考試。(acwing)
2月:完成湯家鳳1800+輔導講義,三大計算(極限),夜雨視頻
3月:湯家鳳1800二輪,搭配武忠祥基礎課過概念,三大計算(極限),夜雨視頻(完結),陳啟浩,清疏?
4月:陳兆斗,三大計算(導數),競賽真題
5月:陳兆斗,三大計算(不定積分),競賽真題
5月下旬,省賽
6月:蒲和平,三大計算(不定積分),競賽真題
7月:蒲和平,三大計算(不定積分),MIT線代概率論,競賽真題
8月:蒲和平,MIT線代概率論,裴磚,競賽真題
9月:蒲和平,裴磚,競賽真題
9月,國賽初賽
10月,裴磚,蒲和平,陳兆斗,陳啟浩歸納,三大計算(極限)
11月,裴磚,蒲和平,陳兆斗,陳啟浩歸納,三大計算(導數)
12月,裴磚,蒲和平,陳兆斗,陳啟浩歸納,三大計算(不定積分)
1月,開始跟零壹
2月,六級綠皮書一輪識記,語法新思維初級,經濟學人每天一篇
3月, 六級英語墨墨背誦 ,GRE楊鵬記憶櫻薯羨法!語法新思維中級,經濟學人每天一篇,英語競賽書
4月,墨墨單詞復習,word power made easy,語法新思維高級,英語競賽書
4.17,英脊拍語競賽
5月,經濟學人一篇,word power made easy,雅思
6月,經濟學人一篇,word power made easy,雅思
6月底,六級考試
6月底,雅思考試
7月,經濟學人一篇,語法俱樂部,雅思單詞
8月,經濟學人一篇,語法俱樂部,雅思單詞,新東方閱讀難句教程楊鵬
9月,經濟學人一篇,雅思
10月,經濟學人一篇,雅思
10月底,雅思考試
11月,考研單詞,六級備戰
12月,考研單詞,六級備戰
12月,六級考試
1月,跟零壹
2月,c翁愷,基礎習題庫,pat習題庫
3.5,pat乙級考試
3月,數據結構陳越,c primer plus,acwing語法基礎課
4月,計算機組成原理華文慕課,c++ primer plus,acwing演算法基礎課
5月,操作系統華文慕課,acwing演算法基礎課,演算法提高課,CCF課
6月,計網,acwing CCF課
6.19,CCF認證
7月,演算法筆記,acwing PAT課,演算法導論,CSAPP(CMU)
8月,演算法筆記,acwing PAT課,演算法導論,CSAPP(CMU)
9月,PAT考試
10月,acwing演算法進階課,《x86:從實模式到保護模式》,408概念融會貫通
11月,acwing演算法進階課,《操作系統真象還原》,學堂在線張悠慧匯編
12月,acwing演算法進階課,華中科大《計算機組成原理》
12月,PAT考試
12月,CCF認證
1月,跟零壹
❷ python進階:遞歸演算法
遞歸演算法常用來解決結構相彎御似的問題。
所謂結構相似,是指構成原問題的子問題與原問題在結空備構上相似,可以用類似的方法解決。具體地,整個問題的解決,可以分為兩部分:第一部分是一些特殊情況,有直接的解法;第二部分與原問題相似,但比原問題的規模小,並且依賴第一部分的結果。
本質上,遞歸是把一個不能或不好解決的大問題轉化成一個或幾個小問題,再把這些小問題進一步斗鬧毀分解成更小的問題,直至每個小問題都可以直接解決。
實際上,遞歸會將前面所有調用的函數暫時掛起,直到遞歸終止條件給出明確的結果後,才會將所有掛起的內容進行反向計算。其實,遞歸也可以看作是一種反向計算的過程,前面調用遞歸的過程只是將表達式羅列出來,待終止條件出現後,才依次從後向前倒序計算前面掛起的內容,最後將所有的結果一起返回。
❸ 學習演算法的路,該怎麼走
先學數據結構,然後看演算法入門書,推薦《趣學演算法》,有大量圖解,比較簡單,容易懂,而且有源碼下載直接運行。傳統的演算法書,大多注重內容的收錄,但卻忽視思維過程的展示,因此我們學習了經典的演算法,卻費解於演算法設計的過程。遇到一個實際問題,通過問題分析,選擇使用什麼樣的演算法策略,基於這種演算法策略選擇什麼樣的數據結構,有時演算法策略和數據結構的選擇並不是唯一的,不同的演算法策略和數據結構設計的演算法,其復型行雜性是不同的。而很多書就是灌輸式的講一個實例,一下子就選擇了一個認定是最優的演算法策略,告訴你就這樣干,不談數據結構,然後分析演算法復雜性,就結束了。
原則上講演算法策略就講演算法策略,不依賴任何程序設計語言和數橡租薯據結構,但對很多學生來講,尤其是語言沒學好,數據結構也不熟練的同學,只講演算法策略,如同空中樓閣。自己用演算法解決實際問題,一頭霧水。剛入門者不建議直接看《演算法導論》,雖然它是經典,不適合初學者,會看蒙圈。演算法入門推薦《趣學演算法》,這本書有大量圖解,適合初學者,從問題出發,根據實際問題進行分析,選擇合適的演算法策略,並分析為什麼採用這種演算法策略,然後選擇什麼數據結構,梁者不同的數據結構復雜性會有什麼區別,巧妙地將數據結構和演算法策略擰成了一條線。通過大量實例,充分展現演算法設計的思維過程,讓學生充分體會遇到一個問題,如何分析,使用什麼演算法策略,採用什麼數據結構,演算法的復雜性如何,是否有優化的可能。
❹ 學習python的話大概要學習哪些內容
想要學習Python,需要掌握的內容還是比較多的,對於自學的同學來說會有一些難度,不推薦自學能力差的人。我們將學習的過程劃分為4個階段,每個階段學習對應的內容,具體的學習順序如下:
Python學習順序:
①Python軟體開發基礎
掌握計算機的構成和工作原理
會使用linux常用工具
熟練使用Docker的基本命令
建立Python開發環境,並使用print輸出
使用Python完成字元串的各種操作
使用Python re模塊進行程序設計
使用Python創建文件、訪問、刪除文件
掌握import 語句、From…import 語句、From…import* 語句、方法的引用、Python中的包
能夠使用Python面向對象方法開發軟體
能夠自己建立資料庫,表,並進行基本資料庫操作
掌握非關系資料庫MongoDB的使用,掌握Redis開發
能夠獨立完成TCP/UDP服務端客戶端軟體開發,能夠實現ftp、http伺服器,開發郵件軟體
能開發多進程、多線程軟體
能夠獨立完成後端軟體開發,深入理解Python開發後端的精髓
能夠獨立完成前端軟體開發,並和後端結合,熟練掌握使用Python進行全站Web開發的技巧
能夠使用Python熟練編寫爬蟲軟體
能夠熟練使用Python庫進行數據分析
招聘網站Python招聘職位數據爬取分析
掌握使用Python開源人工智慧框架進行人工智慧軟體開發、語音識別、人臉識別
掌握基本設計模式、常用演算法
掌握軟體工程、項目管理、項目文檔、軟體測試調優的基本方法
②Python軟體開發進階
③Python全棧式WEB工程師
④Python多領域開發
想要系統學習,你可以考察對比一下開設有IT專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能,南京北大青鳥、中博軟體學院、南京課工場等都是不錯的選擇,建議實地考察對比一下。
祝你學有所成,望採納。
❺ (演算法)到底應該怎麼學
刷與不刷ACM ICPC的人在演算法能力上會有巨大差距。
如果真想深入掌握各種演算法,還是先刷題吧。刷到一定境界再去看更高級的演算法書。
不得不承認現實生活中,一般碼農工作對演算法能力要求太低了,這一度讓人們(包括我)認為演算法似乎不那麼重要。其實學習演算法所鍛煉出來的對各種問題敏感的反應和融會貫通能力還是非常重要的。
編程嘛,就是操作數據輸出結果
演算法和數據結構是配套的,你應該掌握的主要內容應該是:
這個問題用什麼演算法和數據結構能更快解決
這就要求你對常見的結構和演算法了熟於心,你不一定要敲代碼,用紙手寫流程是更快的方式。
對你不懂的數據結構,你要去搜它主要拿來幹嘛的,使用場景是什麼。
細節出錯是你對編程語言不熟悉才會導致的問題,跟你懂不懂演算法沒關系,這個你應該多寫寫練手小程序,背代碼是很愚蠢的行為。
其實我覺得你這么迷茫不如實現一下stl的函數好了
我的經驗就是去模擬(當然模擬只限於基礎的演算法)。甚至是手動模擬,比如我之前學深搜,學遞歸,代碼很簡單,但是因為涉及到棧,而你的大腦短時間內存儲的棧深度只有幾層(臨時變數越多你大腦能模擬的棧深度就越少),實際上你沒辦法用大腦去想。比如學習圖的深搜,一開始我是不理解的,對遞歸沒辦法理解。後來我就在紙上模擬出來,建立好鄰接表以後,按照代碼步驟一步步紙筆來模擬,慢慢就知道了代碼的工作過程。你學習快排也是,當然你背代碼也能寫出來,但是可能不理解,很快就忘了。《演算法導論》書上就有比較細致的執行過程,你手動模擬下partition和quicksort的過程,一開始就用很簡單的用例,把整個過程都手動執行一遍,慢慢就了解了。很多演算法都有一個循環不變式,你代碼如果邏輯正確並且能夠維持循環不變式,一般寫出來就是正確的。
建議找本《演算法》或者《演算法導論》這些教材,每肆猛學畝雹棚習一個演算法就先大致瀏覽下, 然後細致分析每一步代碼的執行過程(紙筆模擬或者代碼單步調試),當確認你真正明白之後,嘗試不看代碼就靠對演算法過程的了解和正確的邏輯去自己實現。
當然,我不認為你寫出很多演算法就是高手了,現在大部分高級語言不需要你重復造輪子,你造出來的質量也遠遜於庫中那些高手的代碼,可以去學習他們代碼的實現,比如看看stl源碼。真正工程用到的代碼與一般演算法實現還是有很多改進的。
最重要的不是你會寫這些算迅則法了,而是學會了很多思想。比如二分的思想,遞歸的思想,分治的思想,動態規劃,貪心等,以及現實中很多數據結構的抽象等。難的不是學會了演算法,而是如何運用這些演算法思想去解決問題。
❻ 演算法工程師的職業規劃是怎樣的怎樣才能進階或稱為專家
從我多年的招聘的經驗來看,作為面試官,問你這個問題其實也不指望你能夠回答唯橋仿出多合理的答案,主要是想你對是否是一個懂得思考的人,對自己是否有期待的人,並且對你即將要從事的職業有多了解,所以你要做好事先准備。因為不知道指纖你是什麼專業,面試的是什麼崗位,所以不能給你具體的答案,但是你必須消敗要了解你面試崗位,以後的發展途徑,可以通過網路上去了解,或者通過從事這個行業的人去了解。要對這個崗位的發展途徑每個崗位的情況都非常了解,包括崗位的工作內容,工作要求,然後你在按照合理的年份進行規劃,最好達到目標級別的崗位。舉個例子,以面試軟體工程師為例,軟體工程師的發展途徑是:初級軟體工程師、中級軟體工程師、高級軟體工程師、系統分析師、架構師、項目經理。。。(往後就不用說了,這個足夠你五年去實現了),那麼你可以告訴面試官,你的規劃是用三年的時候,讓自己達到高級軟體工程師的水平,對某們編程語言非常精通,精通文檔編寫,並且積累項目經驗,包括項目管理經驗,然後利用兩年的時候,讓自己脫離具體編程,從事系統級的工作,系統分析師或架構師,我對管理比較感興趣,所以我會在第五年的時候,成為一名項目經理。接著面試官肯定會問你,這些崗位你知道要求是什麼嗎?那你就要能夠了解清楚去回答,如果你能夠這樣回答,面試官絕對會覺得你狠不錯。參考資料:
❼ Python語言的測試開發完整學習路線
這里整理了一份基於Python語言的測試開發完整學習路線,對軟體測試感興趣的朋友可根據這份大綱來學習:
第一階段:專業基礎課程
階段目標:
1.熟練掌握IT核心技術:編程,資料庫,操作系統,版本控制
2.能夠熟練運用所學技術搭建各類伺服器環境
3.深入理解軟體研發過程各種疑難雜症及處理手段
4.掌握Python編程技術謹培大並熟練運用Python進行程序設計
知識點:
1、Web頁面元素,布局,CSS樣式,盒模型,javaScript程序設計,函數,基礎演算法,正則表達式。
2、資料庫知識,範式,Mysql配置,命令,建庫建表,數據的增刪改查,約束,視圖,存儲過程,函數,觸發器,事務,游標,建模工具深入理解資料庫管理系統通用知識及MySQL資料庫的使用與管理。為軟體測試和測試開發打下基礎。
3、Linux安裝配置,文件目錄操作,VI命令,管理,用戶與許可權,環境部署,Shell編程Linux作為一個主流的伺服器操作系統,是每一個測試開發工程師必須掌握的重點技術,並且能夠熟練運用。
4、Python編程基礎,語法規則,函數,數據類型,PDBC,培養扎實的Python編程基本功,同時對Python核心對象編程有熟練的運用。
5、Python面向對象,異常處理,文件IO,多線程,網路編程,PyQT界面開發,深入理解面向對象編程,異常處理機制,多線程原理,網路協議知識,並熟練運用於項目中。
第二階段:專業核心課程
階段目標:
1.熟練應用所學知識完成一個標準的軟體測試項目
2.熟練運用Python完成GUI測試,介面測試和性能測試開發
3.對測試開發技術體系和實現原理有深入的理解
4.靈活運用測試開發技術解決項目中的各種問題
知識點:
1、軟體工程,軟體質量,系統測試流程,方法,專業術語,測試用例設計,禪道管理工具,測試報告,缺陷管理理解軟體工程的各類實際問題,理解系統測試的理論、方法與過程,熟練運用測試用例設計方法高效設計測試用例。
2、測試需求分析,測試方案設計,測試用例設計,測試項目實施,缺陷報告與測試報告,深入理解系統測試各個過程和關鍵環節,熟練完成系統測試項目。
3、SikuliX框架,框架,SeleniumWebDriver框架,基礎框架,Android應用,Monkey測試,Appium移動端測試框架,移動端測試框架綜合運用各類應用操作平台,完成各種自動化測試框架的學習和應用,深入理解GUI自動化測試技術及相應框架的測試開發。
4、Python單元測試框架,網路通信協議,HTTP與HTTPS協議,WebService與WebSocket協議,Python的介面測試庫,PostMan與SoapUI介面測試工具通過對代碼級介面測試和協議級介面測試的測試開發實戰,靈活運用Python開發介面測試腳本,熟練運用各類介面測試工具。
5、性能測試原理,指標體系,場景設計,實施過程,JMeter工具應用,BeanShell腳本開發,PythonLocust性能測試框架深入理解性能測試技術體系和方法論,熟練運用JMeter性能測試工具和Locust性能測試框架實施對任意系統的性能測試。
第三階段:綜合實戰項目
階段目標:
1.將軟體測試和測試開發技術靈活運用於項目中
2.具備較強的測試開發能力,獨立完成測試開發項目
3.綜合運用軟體測試技術,滿足企業中高級人才需求
4.對所學技術有深入的理解並具備獨立解決問題的能力
知識點:
1、測試需求分析,同行評審,測試計劃,測試方案,測試用例,配置管理,持續集成。通過對大型企業級應用系統的測試項目實戰,強化理解系統測試項目的實施過程與技術細節。
2、介面測試設計與實施,回歸測試,冒煙測試,安全性測試,框架應用,UI自動化實戰將各類自動化測試技術結合項目實戰演練,強化對自動化測試技術的運中埋用,同時掌握更多的測試框架。
3、性能測試項目實戰,LoadRunner性能測試工具,總結通過綜合項目實戰,將全套測試技術融入到項目中,強化學習效果和項目經驗祥豎。
4、Python原生測試框架開發,包括Monkey,UI,圖像識別,雲測試平台,HTML測試報告,持續集成,KDT關鍵字驅動框架開發等原生技術實現通過大量的Python原生代碼開發,深入理解自動化測試開發技術的底層實現原理,完全拋棄對工具的依賴,做到真正的測試開發技術。
5、基於測試框架的設計思路和實現手段,自主實現一套測試框架能夠獨立完成一套自動化測試框架,並能夠直接用於實際項目中。
6、持續集成與Jenkins,安全性測試原理與工具,Python爬蟲開發與Scrapy框架,提升軟體測試其它類技術,增強知識面,提升競爭力,助力職業發展。
補充知識
2、UML統一建模語言、五種圖、類圖、類圖詳解、用例圖、時序圖。
3、Dubbo分布式開發框架,Oracle關系型資料庫管理系統,MongoDB非關系型資料庫管理系統。
4、大數據開發框架Hadoop/MapRece/Spark。
5、Android與iOS的原生應用開發與WebApp開發。
6、OpenCV圖像處理框架、TensorFlow深度學習框架,Lucene全文搜索引擎與中文分詞框架Ik-Analyzer,視頻處理演算法與框架等。
❽ 想自學python,要如何學起呢
分享Python學習路線:
第一階段:Python基礎與Linux資料庫
這是Python的入門階段,也是幫助零基礎學員打好基礎的重要階段。你需要掌握Python基本語法規則及變數、邏輯控制、內置數據結構、文件操作、高級函數、模塊、常用標准庫模板、函數、異常處理、mysql使用、協程等知識點。
學習目標:掌握Python的基本語法,具備基礎的編程能力;掌握Linux基本操作命令,掌握MySQL進階內容,完成銀行自動提款機系統實戰、英漢詞典、歌詞解析器等項目。
第二階段:web全棧
這一部分主要學習web前端相關技術,你需要掌握html、cssJavaScript、JQuery、Bootstrap、web開發基礎、Vue、FIask Views、FIask模板、資料庫操作、FIask配置等知識。
學習目標:掌握web前端技術內容,掌握web後端框架,熟練使用FIask、Tornado、Django,可以完成數據監控後台的項目。
第三階段:數據分析+人工智慧
這部分主要是學習爬蟲相關的知識點,你需要掌握數據抓取、數據提取、數據存儲、爬蟲並發、動態網頁抓取、scrapy框架、分布式爬蟲、爬蟲攻防、數據結構、演算法等知識。
學習目標:可以掌握爬蟲、數據採集,數據機構與演算法進階和人工智慧技術。可以完成爬蟲攻防、圖片馬賽克、電影推薦系統、地震預測、人工智慧項目等階段項目。
第四階段:高級進階
這是Python高級知識點,你需要學習項目開發流程、部署、高並發、性能調優、Go語言基礎、區塊鏈入門等內容。
學習目標:可以掌握自動化運維與區塊鏈開發技術,可以完成自動化運維項目、區塊鏈等項目。
按照上面的Python學習路線圖學習完後,你基本上就可以成為一名合格的Python開發工程師。當然,想要快速成為企業競聘的精英人才,你需要有好的老師指導,還要有較多的項目積累實戰經驗。
自學本身難度較高,一步一步學下來肯定全面且扎實,如果自己有針對性的想學哪一部分,可以直接跳過暫時不需要的針對性的學習自己需要的模塊,可以多看一些不同的視頻學習。
尚學堂邀您前往B站學習Python課程,免費教程隨你挑!
❾ Python需要學習什麼內容,好學嗎
Python自身的語法優勢:
為什麼說Python好學,是因為Python自身的特點決定的。作為一種解釋型語言,在Python開發的過程中沒有編譯環節。雖然Python犧牲了一部分機器的效率,但是卻提高了人的編譯效率,因此我們常常把Python看做是一門更接近自然語言的語言,它的邏輯也十分接近人的邏輯,即使是初學者也能輕松理解Python的語法邏輯。而且,Python有大量的標准庫,因此只用幾行代碼就可以實現一個功能,掌握了Python就能因為大量的第三方庫降低很多常規開發的工作量。這就是Python自身的學習優勢,也是為什麼備受開發者和初學者青睞的原因。
Python的學習規劃:
當然了,就算Python是一門新手友好的編程語言,也需要科學的方法和自身的努力,才能學好並掌握它。那麼我們應該如何規劃Python的學習計劃呢?這里介紹一下博學谷的基礎語法學習大綱,大家可以參考一下。首先學習內容涉及變數,運算符,輸入輸出和條件以及循環語句基礎語法。總共七個學習階段,分別是第一個python程序,注釋,變數、輸入和輸出、運算符,if、while、for,字元串,列表和字典,元組。沒有任何軟體編程基礎和Python經驗的學習者都可以通過博學谷的Python基礎語法入門教程,熟練掌握python的變數、輸入輸出、運算符、條件和循環語句等語法知識。
Python的學習時間安排:
至於Python要學多久,要看怎麼學,並且學到什麼程度。如果是零基礎自學想達到就業的水平,按照每個人理解能力和學習能力的差異,大致上需求半年到一年左右。如果選擇培訓,有了講師的指導和帶領,可以少走不少彎路,學習效率會更高,不到半年就可以熟練掌握Python。以博學谷Python就業班的課程為例,覆蓋了計算機原理、網路、Web前端、後端、架構、 資料庫、項目部署、數據獲取、數據提取、數據清洗、數據分析、數據挖掘、機器學習、深度學 習、圖像識別等領域所需要的全部技術,以兩個就業核心方向+多領域就業能力培養為目標,學員完成課程就可以勝任Python開發崗位的工作。
❿ ACM進階指南
大一上學期:
必學:
1.C語言基礎語法必須全部學會
a)推薦「語言入門」分類20道題以上
b)提前完成C語言課程設計
2.簡單數學題(推薦「數學」分類20道以上)
需要掌握以下基本演算法:
a)歐幾里德演算法求最大公約數
b)篩法求素數
c)康托展開
d)逆康托展開
e)同餘定理
f)次方求模
3.計算幾何初步
a)三角形面積
b)三點順序
4.學會簡單計算程序的時間復雜度與空間復雜度
5.二分查找法
6.簡單的排序演算法
a)冒泡排序法
b)插入排序法
7.貪心演算法經典題目
8.高等數學
以下為選修:
9.學會使用簡單的DOS命令(較重要)
a)color/dir//shutdown/mkdir(md)/rmdir(rd)/attrib/cd/
b)知道什麼是絕對路徑與相對路徑
c)學會使用C語言調用DOS命令
d)學會在命令提示符下調用你自己用C語言編寫的程序,並使用命令行參數給自己的程序傳參(比如自己製作一個file.exe實現與命令基本功能一致的功能)
e)學會編寫bat批處理文件
10.學會Windows系統的一些小知識,如設置隱藏文件,autoRun.inf的設置等。
11.學會編輯注冊表(包括使用注冊表編輯器regedit和使用DOS命令編輯注冊表)
12.學會使用組策略管理器管理(gpedit.msc)組策略。
大一下學期:
1.掌握C++部分語法,如引用類型,函數重載等,基本明白什麼是類。
2.學會BFS與DFS
a)迷宮求解(最少步數)
b)水池數目(NYOJ27)
c)圖像有用區域(NYOJ92)
d)樹的前序中序後序遍歷
3.動態規劃(15題以上),要學會使用循環的方法寫動態規劃,同時也要學會使用記憶化搜索的方法。
a)最大子串和
b)最長公共子序列
c)最長單調遞增子序列(O(n)與O(n log n)演算法都需要掌握)
d)01背包
e)RMQ演算法
4.學會分析與計算復雜程序的時間復雜度
5.學會使用棧與隊列等線性存儲結構
6.學會分治策略
7.排序演算法
a)歸並排序
b)快速排序
c)計數排序
8.數論
a)擴展歐幾里德演算法
b)求逆元
c)同餘方程
d)中國剩餘定理
9.博弈論
a)博弈問題與SG函數的定義
b)多個博弈問題SG值的合並
10.圖論:
a)圖的鄰接矩陣與鄰接表兩種常見存儲方式
b)歐拉路的判定
c)單最短路bellman-ford演算法dijkstra演算法。
d)最小生成樹的kruskal演算法與prim演算法。
11.學會使用C語言進行網路編程與多線程編程
12.高等數學
13.線性代數
a)明確線性代數的重要性,首先是課本必須學好
b)編寫一個Matrix類,進行矩陣的各種操作,並求編寫程序解線性方程組。
c)推薦做一兩道「矩陣運算」分類下的題目。
以下為選修,隨便選一兩個學學即可:
14.(較重要)使用C語言或C++編寫簡單程序來調用一些簡單的windows API,或者在linux下進行linux系統調用,其目的是明白什麼是API(應用程序介面)。
15.網頁設計
a)學習靜態網頁技術(html+css+javascript)
b)較具有藝術細胞的可以試試Photoshop
c)php或其它動態網頁技術
16.學習matlab,如果想參加數學建模大賽的話,需要學這個軟體。
大一假期(如果留校集訓)
1.掌握C++語法,並熟練使用STL
2.試著實現STL的一些基本容器和函數,使自己基本能看懂STL源碼
3.圖論
a)使用優先隊列優化Dijkstra和Prim
b)單源最短路徑之SPFA
c)差分約束系統
d)多源多點最短路徑之FloydWarshall演算法
e)求歐拉路(圈套圈演算法)
4.進行復雜模擬題訓練
5.拓撲排序
6.動態規劃進階
a)完全背包、多重背包等各種背包問題(參見背包九講)
b)POJ上完成一定數目的動態規劃題目
c)狀態壓縮動態規劃
d)樹形動態規劃
7.搜索
a)回溯法熟練應用
b)復雜的搜索題目練習
c)雙向廣度優先搜索
d)啟發式搜索(包括A*演算法,如八數碼問題)
8.計算幾何
a)判斷點是否在線段上
b)判斷線段相交
c)判斷矩形是否包含點
d)判斷圓與矩形關系
e)判斷點是否在多邊形內
f)判斷點到線段的最近點
g)計算兩個圓的公切線
h)求矩形的並的面積
i)求多邊形面積
j)求多邊形重心
k)求凸包
選修
9.可以學習一種C++的開發框架來編寫一些窗體程序玩玩(如MFC,Qt等)。
10.學習使用C或C++連接資料庫。
大二一整年:
1.數據結構
a)單調隊列
b)堆
c)並查集
d)樹狀數組
e)哈希表
f)線段樹
g)字典樹
2.圖論
a)強連通分量
b)雙連通分量(求割點,橋)
c)強連通分量與雙連通分量縮點
d)LCA、LCA與RMQ的轉化
e)二分圖匹配
i.二分圖最大匹配
ii.最小點集覆蓋
iii.最小路徑覆蓋
iv.二分圖最優匹配
v.二分圖多重匹配
f)網路流
i.最大流的基本SAP
ii.最大流的ISAP或者Dinic等高效演算法(任一)
iii.最小費用最大流
iv.最大流最小割定理
3.動態規劃多做題提高(10道難題以上)
4.數論
a)積性函數的應用
b)歐拉定理
c)費馬小定理
d)威樂遜定理
5.組合數學
a)群論基礎
b)Polya定理與計數問題
c)Catalan數
6.計算幾何
a)各種旋轉卡殼相關演算法
b)三維計算幾何演算法
7.理解資料庫原理,學會SQL語句
8.學好計算機組成原理
9.學習Transact-SQL語言,學會使用觸發器,存儲過程,學會資料庫事務等。
10.圖論二
a)網路流的各種構圖訓練(重要)
b)最小割與最小點權覆蓋等的關系(詳見《最小割模型在信息學競賽中的應用》一文)
c)次小生成樹
d)第k短路
e)最小比率生成樹
11.線性規劃
12.動態規劃更高級進階
13.KMP演算法
14.AC自動機理論與實現
15.博弈論之Alpha-beta剪枝