1. 程式人生 > >自己寫的一些小結論

自己寫的一些小結論

  • 在DP (動態規劃)中,每一個狀態都由可以到達它的其他狀態轉移過來(除非初始化的那些狀態)。
  • 在簡單遞推中,每一個狀態都由可以到達它的並且已經計算過的其他狀態轉移過來,並在大多數時候 :間接 不等於 直接
  • 在簡單DFS(深度優先搜尋)中,我們需要做的是建一棵搜尋樹(當然是用棧建,每一個棧都相當於一個子樹)。建樹操作是簡單的(一遍推下去,一遍回溯,回溯之後的那個點繼續往所有可能的點推下去(當然並不是已經推過的點)),所以在大多數時候,儘量用DFS而不用其他寫起來很麻煩的操作。
  • 說實話有些是後分不清怎麼搞DP時記憶化搜尋是一種很棒棒的選擇。
  • 記憶化搜尋主要思想是不要將算過的點再算一遍。
  • DFS真是一個好東西。
  • 簡單並查集的本質其實是許多棵樹,且深度只有2層(如果根節點算第一層的話)。
  • dijkstra?兩兩點之間的邊列舉一下,如果(當前的邊+初始節點到當前出發點的路徑長度<當前到達點的原本路徑長度),那麼,把(當前原有到達點的路徑長度) 與 ( 當前的邊+初始節點到當前出發點的路徑長度)的值大小換一下,並把當前到達點壓入棧中(因為這個點比原先更優,這個點通向的其他的點的值至少會比原先這個點通向其他點的值少一點)(要優化的話優先佇列 priority 百度一下)(注意!!!:這玩意只適用於無負邊權的圖)。