USACO 2.1 分析

第一題 The Castle

算法:求連通分量的個數

題目給出的形式很好,沒有以強的形式給出,而是以1,2,4,8來對應二進制給出,還要打牆~~~

 

難點1:怎樣判斷有沒有牆?

位運算可以發揮作用了!

 

難點2:怎樣敲牆?

由於題目中有西是最優的,其次是南,所以枚舉的順序有關係;其次,要先敲N,再去敲E,可以寫兩個FOR,也可以把它過程化;

小細節:敲的時候兩邊要屬於不同的連通分量啊!

 

這道題目比以前的代碼大大縮減,只有60++,很高興!

小問題:maxarea >?= s[number] 在USACO上編譯不能通過?

 

第二題:Ordered Fractions

題目意思很明白,第一反映排序,而且NLOGN排序可以過,於是沒想其他方法,就上了。

看了Analysis後,Russ有一種遞歸直接生成解的方法,很厲害啊。

 

 第三題:Sorting A Three-Valued Sequence

這道題很水,先兩個儘量交換,剩下的只能三個交換了,由於最終的排列是給定的,所以只需O(N)的時間

 

第四題:Healthy Holstein

最多也只有15種飼料,0/1枚舉也就32768種,能承受,如果用二進制來構造方案統計的效率比較低,所以還是用DFS了來構造選擇方案比較划算

小技巧:記錄選擇的方案不需要一個數組,只需一個二進制數來記錄,方便,快速,給力!

 

第五題:Hamming Codes

要用到位運算來獲取第N位二進制數的操作;另外可以先預處理出所有數對之間的距離,我想數據本身就不太大,不預處理了,還浪費空間,時間還是挺可以的

 

 

好久閒着了,今天下午+晚上間歇得把2.1寫完了,還是有收穫的,明天晚上就要動身去學校了,短暫的寒假結束了,準備迎接新一輪的挑戰吧!

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