HDOJ1301刷題記錄

2021-09-19 01:25:46 字數 1042 閱讀 9496

題目大意: 典型的最小生成樹 廢話不多說 使用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...