八月解題手記(二)


都隔了一個月了~~

八月基本上是比賽的——單獨做的題較少……套題另外整理。

Augest_18

POJ1324 Hol_dox_Moving


經典搜索題

難點在於狀態的Hash,其實算算大小正好夠了,所以就簡單BFS了。

不過A*快很多(用一次BFS求一個點到目標點的最短路徑來設計啓發式函數)~~




Augest_19

POJ3514 The Writers' Club

簡單BFS

預處理麻煩點







Augest_20

POJ3510 A Tale from the Dark Side of the Moon

傳說中的閱讀理解題

細節啊細節

快WA死人了





Augest_20

POJ3509 Rotating Rings

簡單模擬題






Augest_21

POJ3562 “Roman” corridor

Trie的應用(搜索)

對roman數字建立Trie樹! 這個想法太強大了

然後就搜索,用Trie來判斷路徑合法性







Augest_21

POJ2594 Treasure Exploration

傳遞閉包+最小路徑覆蓋

重要的是要聯想到是這個東西





Augest_21

POJ3448 Roman Expressions

羅馬數字

無聊題,我在寫了一個Roman——number的“標程”後交着玩




Augest 24

POJ2086 Land Division Tax

DP+

經典

O(n^3)的DP

做了一上午,一直TLE,後來用C++交才發現任何一個程序都可以1500+msAC!!!!

代碼待考證





Augest_24

POJ1419 Graph Coloring

回溯

最大團/最小覆蓋點集

可以相互轉化的兩個模型

得到一個結論:用最小覆蓋點集方法來對最大團的補圖求解的算法快很多

這個題數據很水,我寫了個非常暴力的題目都過了








Augest_28

POJ2647 Doublets


BFS+Trie(在Trie上DFS)

經典

再次見識到好的數據結構(Trie)的強大,這個題我做過一次,原來在WOJ上AC,在POJ得到MLE!!

在Trie上做DFS,這種方法不是第一次見了。。。





Augest_29

POJ2049 Finding Nemo

BFS經典題

對平面進行劃分

隊伍練習賽題目,結果我用了不熟悉的priority_queue,寫反了比較函數,查錯用了好久!!!





Augest_29

POJ2056 The Separator in Grid

雙向DP

或者BFS/DFS

隨便怎麼亂搞都可以過——時間複雜度基本不成問題





Augest_30

POJ3375 Network Connection

經典DP優化

N<=2000, M<=100000,O(m*m)的算法容易想到,要優化到O(n*m),
我猜了好久亂搞了個先找到一個最接近的位置,然後向前向後各枚舉n+2步DP(ms後面試了下n也可以),
終於過了,這個題想了好久!!



Augest_30

POJ3351 Gerrymandering

NB的DP

太猛的算法了

在shiming413的blog上看到的算法,將O(N^3)的算法優化到O(n^2)!!!

O(n^3)的算法太容易想到,但是優化起來還是不簡單的!

思路來自:http://www.cppblog.com/shiming413/archive/2007/08/22/30577.html






Augest 31

POJ3683 Priest John's Busiest Day

2-SAT
少有的要求出分組的2-SAT

算法見趙爽和伍昱的論文

POJ月賽題,看到後非常爽(終於有一道2-SAT分組的題可以驗證標程了)

當時我們羣P,只有我和sherlock做過2-SAT,想到算法後sherlock(他手速快,這個再正確不過,我晚上寫了好一段時間才過,建圖啊建圖)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章