此题就是prim算法模板
直接给代码、
#include "iostream" using namespace std; #define MAXSIZE 102 int map[MAXSIZE][MAXSIZE]; int vis[MAXSIZE]; int temp[MAXSIZE]; int main() { int n; while (scanf("%d",&n)!=EOF) { int ans=0; int i,j; for (i=0;i<n;i++) { for (j=0;j<n;j++) { scanf("%d",&map[i][j]); } } memset(vis,0,sizeof(vis)); for (j=0;j<n;j++) { temp[j]=9000010; } i=0; for (j=0;j<n;j++) { if (map[i][j]!=0) if (map[i][j]<temp[j]) { temp[j]=map[i][j]; } } vis[0]=1; while (i<n-1) { //找最小的边 int min=9000010; int minindex=0; for (j=0;j<n;j++) { if (vis[j]==1) { continue; } if (min>temp[j]) { min=temp[j]; minindex=j; } } //把最小的边的顶点加入集合 vis[minindex]=1; //更新temp for (j=0;j<n;j++) { if (map[minindex][j]!=0&&vis[j]!=1) if (map[minindex][j]<temp[j]) { temp[j]=map[minindex][j]; } } ans+=min; i++; } printf("%d\n",ans); } return 0; } /* 6 0 6 1 5 0 0 6 0 5 0 3 0 1 5 0 5 6 4 5 0 5 0 0 2 0 3 6 0 0 6 0 0 4 2 6 0 */
相关推荐
总的来说,解决POJ1258-Agri-Net问题不仅要求掌握图论和Prim算法,还需要有良好的编程实践,包括数据结构的选择和优化技巧。通过深入研究提供的资源,我们可以增进对这些问题解决策略的理解,并提高自己在类似问题上...
此外,可能还需要优化算法以适应大数据集,例如使用合适的数据结构(如KD树或平面分割)加速邻接模块的查找。 代码文件"POJ2031-Building a Space Station【Prim+计算几何】.cpp"应包含了用C++实现的算法,而"POJ...
标题 "POJ 1751 求最小生成树Prim算法(JAVA)" 提到的是一个编程挑战,涉及图论中的经典算法——Prim算法。在计算机科学中,Prim算法是用于寻找加权无向图的最小生成树的一种有效方法。最小生成树是一棵树形结构,...
5. **贪心算法**:对于一些局部最优的选择可以导致全局最优解的问题,如霍夫曼编码、Prim算法和Kruskal算法等。 6. **图论算法**:包括图的遍历(深度优先搜索和广度优先搜索)、最短路径问题(Dijkstra算法、Floyd...
在计算机科学中,图算法是用于解决与图数据结构相关问题的算法。图由顶点和连接顶点的边组成,可以用来表示各种复杂的关系。以下是一些核心的图算法及其在解题中的应用: 1. **深度优先搜索(DFS, Depth-First ...
通过上述分类,我们可以看到 POJ 题目涵盖了算法与数据结构的多个方面,对于初学者来说是一份非常好的学习资料。掌握这些知识点不仅有助于提高解决问题的能力,也能为后续深入学习打下坚实的基础。
6. **数据结构**:C++代码中可能使用了数组、链表、队列或堆栈等数据结构来存储和操作图的信息。 7. **动态规划**:在某些情况下,动态规划可能被用来优化解决问题的效率,特别是当问题具有重叠子问题和最优子结构...
- **描述**:最小生成树算法包括Prim算法和Kruskal算法。 - **应用场景**:构建连接所有顶点且权重最小的生成树。 - **相关题目**: - POJ 1789 - POJ 2485 - POJ 1258 - POJ 3026 #### 3. 流网络算法 - **描述...
6. 数组与链表:数据结构基础,理解和熟练操作数组和链表是解决算法问题的前提。 二、解题策略与AC代码分析 在POJ的中级算法中,我们通常会遇到以下类型的题目: 1. **数学问题**:例如,质因数分解、数列求和、模...
- **解释**:最小生成树算法主要包括Prim算法和Kruskal算法。 ##### (4) 拓扑排序 - **例题**:poj1094 - **解释**:拓扑排序是对有向无环图的一种排序方式,可以用来解决依赖关系的问题。 ##### (5) 匹配算法 - *...
* 串:串是指解决问题的基本数据结构,如 poj1035、poj3080、poj1936。 * 排序:排序是指解决问题的排序算法,如快排、归并排、堆排。 * 简单并查集:简单并查集是指解决问题的简单并查集算法。 * 哈希表和二分查找...
### 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 1789 最小生成树之prim算法”指的是一个在线编程竞赛题目,来源于普林斯顿开放在线课程(POJ)平台。该题目要求参赛者实现Prim算法,这是一种解决图论问题中寻找最小生成树的经典算法。最小生成树是在...
- **定义**: 包括Prim算法和Kruskal算法。 - **应用场景**: Prim适用于稠密图,Kruskal适用于稀疏图。 - **示例题目**: POJ 1789, POJ 2485, POJ 1258, POJ 3026 - **注意事项**: 理解两种算法的核心思想和实现...
- `3632`:可能是图的遍历(深度优先搜索DFS或广度优先搜索BFS)问题,或者是最小生成树(Kruskal's或Prim's算法)、最短路径(Dijkstra或Floyd算法)等。 3. **字符串处理**(String Manipulation): - `3682`...
- 最小生成树算法:如Prim算法和Kruskal算法,用于找出图中的最小生成树,如`poj1789, poj2485`。 - 拓扑排序:适用于有向无环图,用于确定任务的执行顺序,如`poj1094`。 - 二分图的最大匹配:如匈牙利算法,...
- **最小生成树**:主要算法有普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal),用于求解无向图中的最小生成树。 - 示例题目:POJ 1789, POJ 2485, POJ 1258, POJ 3026 - **网络流**:涉及到最大流、最小割等问题,...
2. **最小生成树**:Prim算法和Kruskal算法,用于构建图的最小生成树(poj1789, poj2485, poj1258, poj3026)。 3. **网络流**:Max-flow算法,用于解决最大流问题(poj1094)。 4. **拓扑排序**:解决有向无环图的...
- **解法概述**:这道题的关键在于理解题目要求,以及如何有效地利用数据结构和算法解决问题。题目要求构造一个特定的图,并计算出特定的值。 - **关键点**:需要特别注意题目中的限制条件和要求,以便快速准确地...
- **Prim算法**:适用于密集图。 - 示例题目:poj1789, poj2485, poj1258, poj3026 - **Kruskal算法**:适用于稀疏图。 - 示例题目:poj1789, poj2485, poj1258, poj3026 3. **流网络** - 示例题目:poj1094 ...