7月份HDOJ A題小結(jié)
7月份主要針對(duì)于以下幾個(gè)類型:搜索,DP,圖論(部分)。
搜索:主要是DFS和BFS,特別一點(diǎn)是注意剪枝。
1010 Tempter of the Bone DFS+奇偶剪枝。
1016 Prime Ring Problem 簡(jiǎn)單的DFS,第一次沒(méi)看清題目,沒(méi)注意尾部和首部相加也要是素?cái)?shù)。可以先用一個(gè)數(shù)組把素?cái)?shù)先標(biāo)記好,那DFS就很簡(jiǎn)單了。
1181 變形課 簡(jiǎn)單的DFS。用鄰接矩陣將首尾字母保存,從字母‘b’開始DFS搜索。注意跳過(guò)已經(jīng)搜過(guò)的字母。
1195 Open the Lock 2717 Catch That Cow 簡(jiǎn)單BFS。注意跳過(guò)已經(jīng)搜索過(guò)的。
1240 Aseroids! 簡(jiǎn)單的BFS。錯(cuò)了幾次是因?yàn)闆](méi)把數(shù)據(jù)用多維數(shù)組保存好。
1241 Oil Deposits DFS和BFS都可以。斜線方向也是可以的。
1242 Rescue BFS。但是注意可能由多個(gè)Freind,所以從Angle開始搜。
1312 Red and Black 簡(jiǎn)單DFS。
1198 Farm Irrigation 可以用BFS,但我是用“并查集”做的。
DP:這個(gè)是弱點(diǎn),所以沒(méi)做多少,只做一些簡(jiǎn)單的。
1003 MaxSum 最長(zhǎng)連續(xù)子序列,經(jīng)典DP,基本DP。
1024 MaxSum Plus Plus 關(guān)鍵是如何降維,將O^3最后變成O^2的,否則會(huì)超時(shí)。
1114 Piggy-Bank 完全背包問(wèn)題。
1159 Common Subsequence 最長(zhǎng)公共字串,經(jīng)典DP問(wèn)題。
1203 I NEED A OFFER!0-1背包問(wèn)題。
1257 最少攔截系統(tǒng) 一個(gè)簡(jiǎn)單方法,利用vector 開一個(gè)動(dòng)態(tài)數(shù)組,每次讀一個(gè)數(shù)據(jù),從前掃描過(guò)來(lái),遇到比所讀數(shù)據(jù)大的,就更新那個(gè)數(shù)據(jù)為所讀數(shù)據(jù),最后,該數(shù)組長(zhǎng)度就是導(dǎo)彈系統(tǒng)個(gè)數(shù)。
1559 最大子矩陣 對(duì)數(shù)組中的數(shù)據(jù)做下修改,對(duì)于a[i][j] 重新更新為 a[1][1]—a[i][j] 子矩陣的和,然后就可以搜一下整個(gè)數(shù)組就能得到最大子矩陣了。
1428 漫步校園 先是從終點(diǎn)BFS到起點(diǎn),把耗費(fèi)保存在一個(gè)表中,然后再?gòu)钠瘘c(diǎn)DFS終點(diǎn)求的所有路線,但注意要記錄已經(jīng)遍歷過(guò)的點(diǎn),下次遍歷就直接加上上次遍歷所得的路線數(shù)目,否則會(huì)超時(shí)。
圖論:主要做了 單源最短路徑--Dijkstra算法,所有點(diǎn)的-Floyd算法;最小生成樹--Prim算法,另外那個(gè)還沒(méi)寫過(guò)( = =! ); 最大子團(tuán)--回溯法
1217 Arbitrage 建立一個(gè)有向圖,利用Floyd算法,問(wèn)題也就是求通過(guò)其他點(diǎn)到自己有沒(méi)有增加。
1596 find the safest road 所有點(diǎn)最短路徑--Floyd可以解決。
1530 Maxumum Clique 最大子團(tuán) 回溯法,就是耗時(shí)比較多。
1162 Eddy’s picture 最小生成樹--Prim算法
1232 暢通工程 赤裸裸的并查集。
1301 Jungle Roads 還是最小生成樹
posted on 2010-08-07 23:06 Geek.tan 閱讀(393) 評(píng)論(0) 編輯 收藏 引用 所屬分類: ACM解題報(bào)告