HDOJ 1301 Jungle Roads

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301

 

//HDOJ1301
#include<iostream>#include<cstring>
using namespace std;
#define MAX 99999
#define LEN 30
int dist[LEN];//某点的权值  起始点到目标点的权值
int map[LEN][LEN];//某点到某点两点之间的权值
bool isvisitd[LEN];//表示某点是否访问过

//初始化map数组  设置为无穷大
void  init(int n){
    for(int  i = 0;i<=n;i++) {
         for(int  j = 0;j<=n;j++)
            map[i][j] = MAX;
     }
} 

//prim最小生成树的算法
int prim(int n){
    int i,j,min,pos,sum;
    sum = 0;   //最小生成树的权值

    //初始化,表示没有一点走过
    memset(isvisitd,false,sizeof(isvisitd));

    //初始化给dist数组赋值
    for(i = 1;i<=n;i++){
        dist[i] = map[1][i];
    }

    isvisitd[1] = true;//标记1已被访问  从1开始

    //找到权值最小点并记下位置
    for(i = 1;i<n;i++){
            min = MAX;
            for(j = 1;j<=n;j++){
            if(!isvisitd[j]&&dist[j]<min){
                min = dist[j];
                pos = j;//记录下该位置
            }
        }

        sum+=min;
        isvisitd[pos] = true;

        //更新权值
        for(j = 1;j<=n;j++)    {
            if(!isvisitd[j]&&dist[j]>map[pos][j]){
                dist[j] = map[pos][j];
            }
        }

    }
    return sum;
}
int main(){
    int i,j,n,m,len;
    char start,end;
    while(scanf("%d",&n)!=EOF){
        if(n==0){
            break;
        }

        init(n);//初始化

        for(i=0;i<n-1;i++){
            cin>>start>>m;
            for( j = 0;j<m;j++){
                cin>>end>>len;
                map[i+1][end-'A'+1] = len;
                map[end-'A'+1][i+1] = len;
            }
        }
        cout<<prim(n)<<endl;
    }
    return 0;

}

运行结果如下:

 

最小生成树 Prim算法的实现及应用  http://blog.csdn.net/worker90/article/details/6642959

时间: 2024-10-30 18:49:34

HDOJ 1301 Jungle Roads的相关文章

poj 1251 Jungle Roads MST

   水 /* author:jxy lang:C/C++ university:China,Xidian University **If you need to reprint,please indicate the source** */ #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #defin

HDU 1301(MST)

Jungle Roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2932 Accepted Submission(s): 2074 Problem Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of forei

UVa 11723 Numbering Roads (water ver.)

11723 - Numbering Roads Time limit: 1.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2823 In my country, streets don't have names, each of them are just given a number

UVa 10308 Roads in the North:树上的最长路

10308 - Roads in the North Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=115&page=show_problem&problem=1249 思路:由于是一棵树,我们只要随便指定一个树根就开始dfs.所有路径都可以看成以父节点为中转点的"子树甲+子树乙"的形式(只有一

算法:poj 1947 Rebuilding Roads (树形背包dp)

题意 给一棵树,问最少删掉几条边.使得剩下的子树中有节点个数为p个的 思路 几天前就看了 这题, 但是没什么想法,之后每天都有去想一下, 直到今天, 在我对自己方法还有怀疑 的情况下,竟然AC了 .. f(i, j) 表示子树i,保留j个节点的最少删边次数, 注意,这里保留的j个节点的子树,是指根节点 为i的且有j个节点的子树.这样理解的话, 状态转移就容易想多了. 对于子树i, 如果只保留1个节 点,那么连接它所有儿子节点的边都要删掉, 所以可以初始化 f(i, 1) = 节点i的儿子个数 f

win10 装Microsoft office2010 出错1301。求解

问题描述 win10 装Microsoft office2010 出错1301.求解 电脑原先是win7系统的时候装的office 升win10后换的wps 现在需要用office, 装2010的装了好几遍 都出现1301错误,总是提示目标目录已经存在,无法创建目录,已存在相同目录.可是我到其目录下根本没有看到啊,我把隐藏文件都看了.用 Microsoft Fix it删了好几遍,还是不行.求高手解决. 解决方案 还是wps好用,软件又小 解决方案二: 没有卸载干净.可以借助专业卸载软件卸载.或

最大匹配-HDOJ 2458 Kindergarten

HDOJ 2458 Kindergarten Description In a kindergarten, there are a lot of kids. All girls of the kids know each other and all boys also know each other. In addition to that, some girls and boys know each other. Now the teachers want to pick some kids 

最大匹配-HDOJ 1068

HDOJ 1068 Girls and Boys . Problem Description the second year of the university somebody started a study on the romantic relations between the students. The relation "romantically involved" is defined between one girl and one boy. For the study

松下电器公司投降:宣布放弃开发Jungle掌机

北京时间3月1日消息,据国外媒体报道,日本消费电子巨擎松下电器周二宣布,该公司已放弃了掌上游戏机Jungle的开发工作. 松下电器在去年10月宣布,该公司已开始在美国市场测试一款掌上游戏机,希望在阔别视频游戏市场10多年后重返该领域.松下电器与世嘉森美(Sega Sammy).Atari都曾经参与视频游戏市场,但最终却败给了索尼和任天堂.借助推出Jungle,松下电器曾希望重返视频游戏市场.除了传统竞争对手外,松下电器还要面临微软.苹果iPhone和iPad等智能手机和平板电脑的竞争. 松下电器