zoukankan      html  css  js  c++  java
  • 最小代价生成树



    #include<iostream>
    using namespace std;
    const int Max = 100;
    int p[Max][Max];
    const int maxCost = 99;
    int lowcost[Max];
    int nearest[Max];
    bool mark[Max];
    void Prime(int k,int n)
    {
    	memset(lowcost, 99, sizeof(lowcost));
    	memset(nearest, -1, sizeof(nearest));
    	memset(mark, false, sizeof(mark));
    	nearest[k] = k;
    	lowcost[k] = 0;
    	mark[k] = true;
    	//k is the the point you have added the set
    	for (int i = 0; i < n; i++)
    	{
    		//update lowcost and nearest
    		for (int j = 0; j < n; j++)
    		{
    			if (p[k][j] != 0 && !mark[j] && lowcost[j] > p[k][j])
    			{
    				lowcost[j] = p[k][j];
    				nearest[j] = k;
    			}
    		}
    		//find the min lowcost
    		int min = maxCost;
    		for (int j = 0; j < n; j++)
    		{
    			if (!mark[j] && min > lowcost[j])
    			{
    				min = lowcost[j];
    				k = j;
    			}
    		}
    		mark[k] = true;
    	}
    
    
    }
    
    int main()
    {
    	freopen("sample_input.txt","r",stdin);
    	int vertex, edge;
    	cin >> edge >> vertex;
    	int u, v, cost;
    	for (int i = 0; i < vertex; i++)
    	{
    		cin >> u >> v >> cost;
    		p[u][v] = cost;
    		p[v][u] = cost;
    	}
    	Prime(0, edge);
    	return 0;
    }


  • 相关阅读:
    Linux中的用户和用户组
    GCC编译过程
    C++设计模式——单例模式(转)
    快速排序之python
    归并排序之python
    计数排序之python
    希尔排序之python
    插入排序之python
    选择排序之python
    冒泡排序之python
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6882927.html
Copyright © 2011-2022 走看看