原创 POJ 2002 Squares

  http://poj.org/problem?id=2002 題意:有 n (n<=1000)個點,問在這 n 個點中能組成多少個正方形。思路:可先考慮正方形的特性,邊 AB 繞 A 點旋轉可得到點 C,繞 B 點旋轉可得到點 D,點

原创 最長遞增(減)子序列

最長遞增子序列(LIS)DP 中的入門吧,算是。 1,複雜度O(N^2)的算法      設DP【i】中保存的是1~i 中最長遞增子序列的長度,則DP【i】=max(dp【j】)+1,並且arrary[i]>arrary[j]。最後在DP

原创 Floyd

1,核心思路:通過一個圖的權值矩陣求出它的每兩點間的最短路徑矩陣。其狀態轉移方程:map[i,j]=min{map[i,k]+map[k,j],map[i.j]}   map[i,j]表示i到j的最短距離,k是窮舉i,j的斷點。2,算法流

原创 並查集小記

http://acm.hdu.edu.cn/showproblem.php?pid=1232 題目意思很簡單,給出m條道路連通的情況,求n個城市連通至少還需要建多少條道路。應該算是赤裸裸的並查集,不過也可以用prim。藉此道題目記錄一下並

原创 Dijkstra

1,核心思想: Dijkstra算法是典型的最短路徑算法,用於計算一個頂點到其他所有節點的最短路徑。主要特點是以起始點爲中心向外層層擴展,直到擴展到終點爲止。2,算法流程: 舉例從節點1開始到各點的dijkstra算法,其中Wa->b表示