目錄關於acm比賽以及對應的練習對自己有什麼好處,我不做多的解釋,這次這篇文章只針對想要提公升自己程式設計能力、但又苦於無法找到合適入門途徑的新人。
備註:本文涉及到的oj平台需要能夠訪問外網才可訪問。
訪問外網工具(防和諧,不多說,後續的操作中都需要它)
瀏覽器(建議chrome,看不懂的題目就可以直接翻譯了)
文字編輯器(非必要,許多oj都有**的編輯區,也可以直接在另外的一些**上編輯測試**,例如jdoodle與ideone)
進入aizu oj主頁aizu online judge
點選右上角register/setting
註冊賬號
回到主介面,如果右上角藍色箭頭指向按鈕顯示的是logout
,就證明登陸上去了,如果顯示的是login
,就點選它登入一下。
點選上圖中紫色箭頭所指向的course
,進入到課程系列中。
首先分別介紹一下前三個課程系列(新手只看第乙個就可以,以後可以再看後面的)
itp1(程式設計介紹1),主要是面對純新手,以及學習了c語言等程式語言,但是平時從來沒有實際練習過的人。裡面的題目都很簡單,但是卻可以練習到所有的基礎知識點。比如說簡單的輸入輸出,各種運算子,條件判斷,迴圈語句,以及指標,結構體等等。
alds1(演算法與資料結構1),面向能夠熟練使用一門程式語言的人,這一系列主要是練習各種經典的演算法與資料結構,很多東西平時老師上課說過了,也說讓自己下去練習,但是自己寫出來的**很難測試,比如說棧這個基礎的資料結構,可以寫乙個類出來,但是自己測試的話,又得在主函式裡寫各種呼叫,很麻煩,而在這個課程系列裡,他們的要求很明確,你只需要按照他們的要求寫好**就可以,他們有大量的測試資料來測試你的**,細節問題基本都可以找出來,然後改正,對於演算法與資料結構的理解與實現有很大的幫助。
itp2(程式設計介紹2),面向的是能夠熟練使用基礎知識的人,具體內容的話不太好描述,總之,裡面出現的問題都可以用c++的標準模版庫里的各種類來解決掉,你也可以自己編寫類,有助於對程式語言所提供的高階內容的理解。比如說vector
,就可以理解為乙個動態的陣列,隨著儲存內容的增多,自己擴充容量,還有相應的各種方法來快捷的操作裡面的資料。
我選擇了1_3作為示例
這部分是題目描述,給你乙個矩形的長與寬,計算它的周長和面積。
以c語言為例
#include int main(void)
acm 大整數專題
用string類存大整數,之後用陣列來存大整數的每一位 vector stl容器 向量 vector,變長陣列,倍增的思想 size 返回元素個數 empty 返回是否為空 clear 清空 front back push back pop back begin end 支援下標運算子 支援比較運算...
Goroutine(協程)為何能處理大併發
簡單來說 協程十分輕量 可以在乙個程序中執行有數以十萬計的協程,依舊保持高效能。程序 執行緒 協程的關係和區別 堆和棧的區別請參看 協程和執行緒的區別是 協程避免了無意義的排程,由此可以提高效能,但也因此,程式設計師必須自己承擔排程的責任。執行協程只需要極少的棧記憶體 大概是4 5kb 預設情況下,...
Goroutine(協程)為何能處理大併發?
簡單來說 協程十分輕量,可以在乙個程序中執行有數以十萬計的協程,依舊保持高效能。程序 執行緒 協程的關係和區別 堆和棧的區別請參看 協程和執行緒的區別是 協程避免了無意義的排程,由此可以提高效能,但也因此,程式設計師必須自己承擔排程的責任。執行協程只需要極少的棧記憶體 大概是4 5kb 預設情況下,...