題目大意: 典型的最小生成樹 廢話不多說 使用prime演算法 **如下
prime演算法 的思想: 把樹分為進入了生成樹的節點和沒有進入生成樹的節點
用lowcost表示已經進入生成樹節點和沒有在生成樹中的節點的距離值
prime 的思想就是 每次從lowcost中取出 距離最近的且未進入生成樹節點 加入到生成樹中 然後更新對其他未進入生成樹節點的距離,當全部的節點都進入後 那麼完成prime 演算法
/*
prime 演算法的思路
lowcost陣列表示的是距離這些點的距離
near陣列表示的是是否存在在 生成樹中 如果在生成樹中那麼為-1
思路為: 從非在生成樹中的節點中尋找最短距離的點 然後加入到生成樹中 並每一次都更新距離 一直到所有的點都加入進來為止
*/#includeusing namespace std;
#define ll long long
#define db double
#define inf 1000000
#define max 1000
#define rep(i,j,k) for(int i=(int)(j);i<=(int)(k);i++)
#define per(i,j,k) for(int i=(int)(j);i>=(int)(k);i--)
int n, map[max][max], lowcost[max], near[max];
int prime()
near[u0] = -1;
rep(i, 1, n - 1)
} if (v != -1) //如果v==-1 表示沒有找到最小邊
}} return ans;
}int main()
else
}} for (int i = 0; i < n - 1; i++)
} cout << prime() << endl;
} //system("pause");
return 0;
}
OI刷題記錄
2014 4 18 poj3264 bzoj1699 balanced lineup rmq 2014 4 19 bzoj1012 jsoi2008 最大數maxnumber noi2004 鬱悶的出納員 bzoj3224 tyvj 1728 普通平衡樹 2014 4 20 bzoj1862 105...
面試刷題記錄
寫一段 判斷乙個包括 的表示式是否合法 注意看樣例的合法規則。給定乙個表示式a,請返回乙個bool值,代表它是否合法。測試樣例 a b 5 4 返回 true 測試樣例 a b 5 4 返回 false include vector include iostream using namespace ...
刷題記錄 2015 11 14
現在每天做的題都記錄一下,免得不知道自己在幹什麼。poj2406 用next陣列的定義求迴圈節 poj3261 字尾陣列 題 spoj705 同上,這題我wa了幾次,結果發現 我以為字串只有大寫字母,其實有小寫。如下 poj2406 author duyixian date 2015 11 14 1...