poj1258(prim)(V^2)Prim模板题

来源:互联网 发布:传奇霸业转生13数据 编辑:程序博客网 时间:2024/05/16 08:16
#include<iostream>#include<cstring>#include<cmath>#include<cstdio>#define  INF  1<<30using namespace std;int MAP[110][110];//存各点距离int dis[110];//树到不在树中个点最小距离bool v[110];//是否在树中int prim(int n){    int ans=0;    memset(v,0,sizeof(v));    for(int i=0;i<n;i++)  dis[i]=INF;//初始化最大    dis[0]=0;//选为树根    for(int i=0;i<n;i++)    {        int temp=-1;        for(int j=0;j<n;j++)        {            if(!v[j]&&(temp==-1||dis[j]<dis[temp])) temp=j;//最小距离得点        }        v[temp]=true;        ans+=dis[temp];        for(int j=0;j<n;j++)  if(!v[j]&&MAP[temp][j]<dis[j])        dis[j]=MAP[temp][j];//更新dis【】数组    }    return 0;}int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        for(int i=0;i<n;i++)        {            for(int j=0;j<n;j++)            {                 scanf("%d",&MAP[i][j]);            }        }    }    return 0;}

0 1
原创粉丝点击