- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最小花費擴張樹 minimum (cost) spanning tree
101北一女中資訊選手培訓營;Minimum Cost;Tree的性質;;問題始源;;特性觀察;特性觀察;特性觀察;簡單的方向:Greedy;Algorithm I : Prim’s Algorithm;Prim’s Algorithm;Prim’s Algorithm;;;;範例;範例;範例;範例;演算法描述;其他一些處理;另外要注意的;#include string.h // 為了用memset這個function所以要include這個 #define INF 2147483647 // 用int的最大值做為無限大 int graph[N][N]; // 假設我們有N個點。這裡存的是邊(i,j)的花費(無向邊) // 沒有邊時的花費就是INF int cost[N]; // 記錄目前要把第i個點加入正確聯盟所需要的花費 int last[N]; // 記錄第i個點是透過誰加入了正確聯盟(等於是存在edge(last[i], i)) int choosed[N]; // 記錄是否已經加入了正確聯盟 int fin_cnt; // 記錄已經加入正確聯盟的點的個數 int total_cost; // 記錄總花費 void init(){ // 初始化 // memset會把整塊記憶體空間都填上零,有歸零作用(但不能用來歸成除了0和-1之外的其他值)。 memset(choosed, 0, sizeof(choosed)); // last = -1代表自己就是root,一開始所有點都是自己的root memset(last, -1, sizeof(last)); // 以idx=0的點作為root開始看花費 cost[0] = 0; choosed[0] = 1; int i; for ( i = 1 ; i N ; i++ ){ cost[i] = graph[0][i]; // 如果有邊cost就會是該條邊,反之則會是INF if ( cost[i] != INF ) last[i] = 0; } fin_cnt = 1; // 一開始只有一個點在正確聯盟裡 } ;void prim(){ int min; // 用來存這一輪找到的花費最小值 int min_idx; // 用來存這一輪找到花費最小的是哪個點 int i; while ( fin_cnt N ) { // 如果小於N代表還沒找完 min = INF; // 初始化成INF,用來找最小值 min_idx = -1; // 初始化成-1,之後用來判別有沒有找到新的可用的點 for ( i = 1 ; i N ; i++ ){ // 跑過所有點,找最小值 if ( choosed[i] == 1 ) // 已經在正確聯盟裡就不考慮 continue; if ( cost[i] min ){ min_idx = i; min = cost[i]; } } if ( min_idx == -1 ) break; // 如果沒找到代表此圖找不到spanning tree choosed[min_idx] = 1; // 標記min_idx這個點進入了正確聯盟 total_cost += cost[min_idx]; // 加上加入這個點的cost fin_cnt++; // fin_cnt增加一,代表多了一個點已經確定 // 看看還沒有被選的點,有沒有點能夠透過min_idx
有哪些信誉好的足球投注网站
文档评论(0)