ACM練習流程

2021-07-03 22:34:24 字數 4438 閱讀 7564

大一暑訓

一、語言基礎

a) 基本輸入輸出方式(acm

課件01

b) 條件判斷(nyoj 60

c) 迴圈體(nyoj 463

d) 初步了解結構體

e) *指標(很少會用到,不過一定要掌握)

f) *檔案操作

二、數學

a) 基礎數學題(nyoj 11、34

、39、57

、64、75

、97)

b) 素數

i. 素數判斷(nyoj 22、24

ii. 篩選法求素數(nyoj 26

、187

c) 歐幾里得演算法求最大公約數(nyoj 40、66

、111

d) 排列組合(hyoj 459

e) 進製轉換(nyoj 100

、244

、275

f) 斐波那契數列(nyoj 13、76

、252

g) 階乘(nyoj 56、65

、84)

h) 同餘定理&

模運算(

nyoj 102

三、簡單排序(nyoj 255

、124

a) 冒泡法排序

b) 插入法排序

c) sort()與

qsort()

函式的用法

d) *歸併排序(重點了解分治思想)

四、資料型別(了解下列各種資料型別的範圍以及它們在c

語言中的輸入輸出方式)

a) int

b) unsigned

c) float

d) double

e) long

f) int64、

long long

五、陣列操作

a) 一維陣列(nyoj 50、77

b) 二維陣列(nyoj 29、33

六、字串

a) 字串基礎知識(形式理論、儲存形式)

c) 常見題目(nyoj 62

、113

、241

、257

、264

、273

d) 用字串處理數學問題(nyoj 28、73

、103

七、計算幾何

a) 常見幾何圖形求面積(nyoj 67

、)

b) 幾何資料處理(nyoj 6

、199

c) 座標計算(nyoj 68

、101

八、基本的時間複雜度、空間複雜度計算

九、遞迴的應用(用遞迴的方法求階乘及斐波那契數列)

大二寒訓

一、資料結構

a) 線性表

i. 鍊錶

ii. 棧

1. 括號匹配問題(nyoj 2

2. 表示式求職問題(nyoj 35

iii. 佇列

b) 樹

i. 樹的定義、基本概念及相關操作

ii. 二叉樹、滿二叉樹、完全二叉樹

iii. 哈夫曼樹

c) 圖

i. 圖的儲存方式

1. 鄰接表表示圖

2. 鄰接矩陣表示圖

ii. 圖遍歷

1. 深度優先搜尋dfs

(nyoj 20

2. 廣度優先搜尋bfs

(nyoj 58

iii. 圖的連通性(nyoj 42

d) 查詢

i. 順序查詢

ii. 二分查詢

iii. 雜湊表

e) 排序

i. 快速排序

ii. 堆排序

iii. 選擇排序

iv. 希爾排序

一、高階演算法設計(重點,另外給出例子均為經典例題,其他還有很多擴充套件需自己多加練習)

a) 貪心演算法

i. 活動選擇(nyoj 14

ii. 過河問題(nyoj 47

iii. 揹包問題(nyoj 106

b) 動態規劃

i. 最短路徑(nyoj 18

ii. 最長不上公升/

下降序列問題(

nyoj 17、79

iii. 最長公共子串行(nyoj 36

iv. 完全揹包問題(nyoj 860

v. 01揹包問題(

nyoj 311

acm小貼士:

① 刷題非常重要

② 但刷題量不代表實力

③ 攀比進度沒有任何意義

④ 提交沒有完全掌握的ac

**,對於你來說和

wa無異

⑤ 往往想要ac

一道題,程式設計技巧僅僅只佔

20%的比重,而剩下的

80%,則被讀題和演算法思想各占去一半

⑥ acm不是乙個人的事情,合作和交流往往能起到事半功倍的效果

⑦ 在**別人**或者請教別人之前,請務必保證你有仔細思考過題目並自己動手嘗試過。失去了鑽研精神的acmer

沒有任何價值

⑧ acm或者說程式設計是一門藝術,認真對待你寫出的每一段**,好的**能給人一種賞心悅目的感覺

⑨ printf是最好的查詢錯誤的工具

盲打練習 ACM

在電影 社交網路 中有乙個場景多次出現,就是男主人公扎克伯格坐在他的電腦面前,瘋狂的敲打著鍵盤。電影裡演得非常酷,如果學好了盲打,你也會這樣 當然,前提是你要花上相當長的一段時間練習盲打 對於乙個程式設計師來說,我覺得練好手速很重要,試想一下 乙個打字很慢的人和乙個打字很快的人同時解一道題目,假設他...

ACM遞迴遞推練習

acm遞迴遞推練習 二分法查詢找到中間的數值,如果key目標數值大於中間值,則返回mid 1與n區間。如果小於,則返回mid 1與起始位置區間,由於輸出次數較多,用cout容易超時,用printf則可省時。include int a 3000001 int search int a,int l,in...

ACM練習 括號配對問題

學到了 1.動態建立字串陣列的2種方法 string str new string n 使用完後需要delete str vectorstr n 使用完後不需要釋放空間,但是需要包含標頭檔案vector.h 2.標頭檔案不可使用iostram.h或者string.h,應去掉.h在後面加上using ...