- 5月 18 週二 201019:45
来看一下ST算法是怎么实现的以最大值为例: 首先是预处理,用一个DP解决设a是要求区间最值的数列,f表示从第i个数起连续2j个数 中的最大值例如数列3 2 4 5 6 8 1 2 9 7 ,f1,0表示第1个数起,长度为20=1的最大值,其实就是3这个数 f1,2=5,f1,3=8,f2,0=2,f
這題長的跟ACM 105幾乎一樣 當初那題是怎麼做的呢 基本上就是模擬 可是這邊L超大 模擬穩死 而且該題只問總側面積 這樣不就用線段樹去做就OK了嗎 我看中國那邊做一些優化 但我不知道這樣用處為何! 然後我直接用線段樹不排序去做 就TLE了 感覺很苦悶 後來我用mergesort改寫 就Accep
架構想了好幾個 想到快崩潰了 不過最後經由學長指點 最後終於把其中一個我想過的架構的bug除掉 完成了最後版本 簡單的來說每個點都有一個in點 是給source指向的 有一個out點 是指向sink的 然後初始狀態只有in點可以連到out點 另外我寫了兩種方式 我不知道為何adjacent list
Bug太多 差點沒崩潰Orz 最後總算是找出錯誤點 然後AC了 因為我做法是枚舉一個切斷點 我想說可以找到一個點 去作一個尋找LOWER BOUND的動作 直接跳躍前進 可是我發現這樣會有問題 譬如以下例子 A B A B 斷點 C C 這樣我從B就跳到下一個B 就少數了一段 這樣就炸掉了 後來修正
第一題SSSP用Dijkstra with heap完成的 我想到時候可能會需要看一看Johnsons algorithm 這題SPFA效能不足以通過需求 因為他非接近樹狀圖的話可能就沒有很快了 這邊是4 adjacent directions都可以走 另外沒有寫很快 可能還要再加強 前後加上除蟲竟