`

poj 1258

 
阅读更多

        题意:Farmer John有当选为新镇长,他的竞选宣言就是把网络带入所有的farm。现在给出farm的个数n,以及每两个farm之间的联网距离,让你找出一条最短的路径能连接上所有的farm。

     思路:基础的prim。首先就是邻接矩阵的构造,时间复杂度为o(n^2)。poj第200道,贡献给了prim求最短路径。

#include<iostream>
using namespace std;
const int Max = 102;
const int inf = 0xfffffff;



int n, ans;
int map[Max][Max], dis[Max];   //  dis[i]表示顶点i与生成树之间的最短距离。



int min(int a, int b){
    return a < b ? a : b;
}



void prim(){   //  自己的prim模板。
    int i, j, now, min_node, min_edge;
    for(i = 1; i <= n; i ++)
        dis[i] = inf;
    now = 1;
    ans = 0;
    for(i = 1; i < n; i ++){
        dis[now] = -1;    //   将dis[]的值赋-1,表示已经加入生成树中。
        min_edge = inf;
        for(j = 1; j <= n; j ++)    //   更新每个顶点所对应的dis[]值。
            if(now != j && dis[j] >= 0){
                dis[j] = min(dis[j], map[now][j]);
                if(dis[j] < min_edge){
                    min_edge = dis[j];
                    min_node = j;
                }
            }
			now = min_node;
			ans += min_edge;
    }
}



int main(){
    int i, j;
    while(scanf("%d", &n) != EOF){
        for(i = 1; i <= n; i ++)
            for(j = 1; j <= n; j ++)
                scanf("%d", &map[i][j]);
			prim();
			printf("%d\n", ans);
    }  
    return 0;
}

 

关于最小生成树问题,未完待续……

 

 

 

分享到:
评论

相关推荐

    POJ1258-Agri-Net【Prim】

    【标题】"POJ1258-Agri-Net【Prim】" 是一个编程竞赛题目,来源于北京大学的在线评测系统POJ(Problem Online Judge)。这个题目主要涉及到图论中的一个重要算法——普里姆(Prim)算法。 【描述】"北大POJ1258-...

    POJ3414-Pots

    标题“POJ3414-Pots”是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这个题目主要考察的是算法设计和实现能力,通常涉及计算机科学中的数据结构和算法知识。 解题报告是参赛者在...

    poj题目分类

    * 最小生成树算法:例如 Prim、Kruskal,例如 poj1789、poj2485、poj1258、poj3026。 * 拓扑排序:例如 poj1094。 * 二分图的最大匹配:例如 poj3041、poj3020。 * 最大流的增广路算法:例如 poj1459、poj3436。...

    ACM-POJ 算法训练指南

    2. **最小生成树**:Prim算法和Kruskal算法,用于构建图的最小生成树(poj1789, poj2485, poj1258, poj3026)。 3. **网络流**:Max-flow算法,用于解决最大流问题(poj1094)。 4. **拓扑排序**:解决有向无环图的...

    POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类

    - **例题**:poj1789, poj2485, poj1258, poj3026 - **解释**:最小生成树算法主要包括Prim算法和Kruskal算法。 ##### (4) 拓扑排序 - **例题**:poj1094 - **解释**:拓扑排序是对有向无环图的一种排序方式,可以...

    acm训练计划(poj的题)

    - (poj1789, poj2485, poj1258, poj3026):介绍普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal),用于寻找加权无向图的最小生成树。 4. **拓扑排序**: - (poj1094):适用于有向无环图(DAG)的一种排序方式,...

    经典 的POJ 分类

    - POJ 1258、POJ 3026:Kruskal算法的实际案例。 #### 字符串处理 - **题目示例**: - POJ 3349、POJ 3274:字符串匹配及Hash应用。 - POJ 2151、POJ 1840:利用Hash进行快速查询。 - POJ 2002、POJ 2503:Hash...

    acm新手刷题攻略之poj

    ### ACM新手刷题攻略之POJ ... - 推荐题目:[poj1789](https://vjudge.net/problem/POJ-1789)、[poj2485](https://vjudge.net/problem/POJ-2485)、[poj1258](https://vjudge.net/problem/POJ-1258)、[poj3026]...

    POJ 分类题目

    - poj1258 - poj3026 - **应用场景**:适用于构建最小成本网络、电力线路铺设等问题。 **4. 拓扑排序** - **定义**:对于有向无环图(DAG),拓扑排序是按某种顺序对顶点进行排序,使得对于任意一条从顶点 u 到 v...

    POJ题目分类

    - **示例题目**: poj1789, poj2485, poj1258, poj3026 - **知识点**: - **Prim算法**:适用于稠密图,从任意一个顶点开始构建最小生成树。 - **Kruskal算法**:适用于稀疏图,按照边的权值从小到大依次加入到树中...

    ACMer需要掌握的算法讲解 (2).docx

    * 最小生成树算法:prim、kruskal、POJ1789、POJ2485、POJ1258、POJ3026 * 拓扑排序:POJ1094 * 串算法:POJ1035、POJ3080、POJ1936 * 哈希表和二分查找等高效查找法:POJ3349、POJ3274、POJ2151、POJ1840、POJ2002...

    ACM常用算法及其相应的练习题.docx

    + poj1789, poj2485, poj1258, poj3026 * 拓扑排序:poj1094 * 二分图的最大匹配:匈牙利算法 + poj3041, poj3020 * 最大流的增广路算法:KM算法 + poj1459, poj3436 三、数据结构 * 串:poj1035, poj3080, poj...

    ACMer需要掌握的算法讲解.docx

    6. 最小生成树算法(prim, kruskal)(poj1789, poj2485, poj1258, poj3026) 7. 拓扑排序(poj1094) 8. 串(poj1035, poj3080, poj1936) 9. 哈希表和二分查找等高效查找法(poj3349, poj3274, POJ2151, poj1840, ...

    ACM 题型

    - 示例题目:poj1789, poj2485, poj1258, poj3026 - **Kruskal算法**:适用于稀疏图。 - 示例题目:poj1789, poj2485, poj1258, poj3026 3. **流网络** - 示例题目:poj1094 4. **拓扑排序** - 示例题目:poj...

    北大acm 1258

    poj 1258 acm 北大acm

    ACM常用算法及其相应的练习题 (2).pdf

    例题:poj1789、poj2485、poj1258、poj3026。 * 拓扑排序:拓扑排序是指对有向图进行拓扑排序的算法。例题:poj1094。 * 二分图的最大匹配:二分图的最大匹配是指在二分图中寻找最大匹配的算法。例题:poj3041、poj...

    ACM 新手指南 PKU 题目分类

    - 示例题目:POJ 1789, POJ 2485, POJ 1258, POJ 3026 - **网络流**:涉及到最大流、最小割等问题,适用于解决资源分配类问题。 - 示例题目:POJ 1094 - **匹配问题**:如匈牙利算法(Hungarian Method),适用于...

    北大、杭电ACM试题分类

    - POJ 1789, POJ 2485, POJ 1258, POJ 3026 最小生成树是一棵树形结构,它包含了图中的所有顶点,并且使得所有边的权重之和最小。 4. **最大流** - POJ 1094 最大流问题是指在一个流量网络中寻找一条从源点到...

    算法训练方案详解

    - **示例题目**: POJ 1789, POJ 2485, POJ 1258, POJ 3026 - **注意事项**: 理解两种算法的核心思想和实现细节。 **4. 拓扑排序** - **定义**: 对有向无环图进行排序的一种方法。 - **应用场景**: 适用于任务...

    ACM题目分类.txt

    - POJ 1258 - POJ 3026 #### 3. 流网络算法 - **描述**:流网络算法如Ford-Fulkerson算法等用于解决最大流问题。 - **应用场景**:物流调度、资源分配等。 - **相关题目**: - POJ 1094 #### 4. 强连通分量 - *...

Global site tag (gtag.js) - Google Analytics