- 浏览: 205036 次
- 性别:
- 来自: 武汉
-
文章分类
- 全部博客 (137)
- c++ (74)
- c++,算法,回溯 (2)
- DP问题。 (9)
- DP问题,0/1背包问题 (3)
- 数学问题 (6)
- 贪心算法 (10)
- 排序 (16)
- 数据结构 (7)
- 容器 (2)
- 模拟问题 (2)
- 水题 (8)
- 并查集 (3)
- 非技术 (2)
- 素数问题 (1)
- DFS (3)
- 二叉树 (1)
- 递归 (1)
- 图论 (5)
- 最小生成树 (5)
- 最短路径 (6)
- bell_flaod算法 (2)
- hash (3)
- 二分查找 (1)
- 搜索 (5)
- BFS (5)
- STL (3)
- 字符串hash (1)
- 拓扑排序 (1)
- 字典树 (4)
- 哈弗曼树 (1)
- KMP (7)
- 线段树 (9)
- 树状数组 (6)
- 全排列 (2)
- DP问题 (2)
- LCS (1)
- 最长不下降子序列 (2)
- 面试经验 (3)
题意: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; }
关于最小生成树问题,未完待续……
发表评论
-
虚函数、纯虚函数、虚基类、抽象类、虚函数继承、虚继承
2013-08-29 14:34 861虚函数:虚函数是C++中用于实现多态(polymorphis ... -
排序算法总结
2013-05-17 11:00 859选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, ... -
poj 3122
2012-12-11 19:51 892题意:作者要开一个生日party,他现在拥有n块高度都为1 ... -
poj 3273
2012-12-11 16:49 1002题意:给你天数n,和每天需要花的钱,让你把这些天分成m份(每份 ... -
字典树学习材料
2012-05-30 14:29 986字典树,又称单词查找树,Trie树,是一种树形结构,典型应 ... -
poj 1159
2012-05-28 19:08 1469题目大意:给你一段字符串,让你求出在中间最少加入几个字符 ... -
poj 3176
2012-05-28 14:47 1049大致题意: 输入一个n层的三角形,第i层有i个数,求从第 ... -
poj 1260
2012-05-28 09:54 1635题意解释: 有n个等级的珠宝,等级依次升高,等级越高价钱越高 ... -
poj 1836
2012-05-28 09:22 2741是POJ2533的扩展题。题意不难,令到原队列 ... -
poj 2533
2012-05-26 15:36 1300在做这道题目之前,首先让我们了解一下什么是LIS算法,LIS俗 ... -
poj 3267
2012-05-26 09:43 821从程序可以看出,第i个位置到L所删除的字符数,总是先取最坏情况 ... -
poj 1276
2012-05-25 16:20 2430题意: 这道题的意思是给你一堆钱,各种面值的都有,比 ... -
poj 1094
2012-05-25 13:54 1131题意:给出字母个数,和有限个有序对(a<b)求出能确定字 ... -
poj 3393
2012-05-23 17:00 1277大致题意: 科普文一篇,文章80%都是无用信息,因为 ... -
poj 3007
2012-05-14 10:21 1009大致题意: 给定一个字符串,从任意位置把它切为两半, ... -
poj 3096
2012-05-10 21:09 1041题意: 定义D-pairs表示取字符串s中相距为D的两个字母 ... -
poj 1426
2012-04-26 20:11 2184大致题意: 给出一个整数n,(1 <= n <= ... -
poj 1797
2012-04-24 15:05 1639题目大意是就是何处一个图,n个顶点和m条边,每个边都有最大承载 ... -
poj 1338
2012-04-23 10:20 1276题意:题目意思是求由2,3,5的乘积组成的数从大到小排列,从1 ... -
poj 2021
2012-04-19 15:00 970题意:Ted今年100岁,给出n对他家族的关系:“父 ...
相关推荐
【标题】"POJ1258-Agri-Net【Prim】" 是一个编程竞赛题目,来源于北京大学的在线评测系统POJ(Problem Online Judge)。这个题目主要涉及到图论中的一个重要算法——普里姆(Prim)算法。 【描述】"北大POJ1258-...
标题“POJ3414-Pots”是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这个题目主要考察的是算法设计和实现能力,通常涉及计算机科学中的数据结构和算法知识。 解题报告是参赛者在...
* 最小生成树算法:例如 Prim、Kruskal,例如 poj1789、poj2485、poj1258、poj3026。 * 拓扑排序:例如 poj1094。 * 二分图的最大匹配:例如 poj3041、poj3020。 * 最大流的增广路算法:例如 poj1459、poj3436。...
2. **最小生成树**:Prim算法和Kruskal算法,用于构建图的最小生成树(poj1789, poj2485, poj1258, poj3026)。 3. **网络流**:Max-flow算法,用于解决最大流问题(poj1094)。 4. **拓扑排序**:解决有向无环图的...
- **例题**:poj1789, poj2485, poj1258, poj3026 - **解释**:最小生成树算法主要包括Prim算法和Kruskal算法。 ##### (4) 拓扑排序 - **例题**:poj1094 - **解释**:拓扑排序是对有向无环图的一种排序方式,可以...
- (poj1789, poj2485, poj1258, poj3026):介绍普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal),用于寻找加权无向图的最小生成树。 4. **拓扑排序**: - (poj1094):适用于有向无环图(DAG)的一种排序方式,...
- POJ 1258、POJ 3026:Kruskal算法的实际案例。 #### 字符串处理 - **题目示例**: - POJ 3349、POJ 3274:字符串匹配及Hash应用。 - POJ 2151、POJ 1840:利用Hash进行快速查询。 - POJ 2002、POJ 2503:Hash...
### ACM新手刷题攻略之POJ ... - 推荐题目:[poj1789](https://vjudge.net/problem/POJ-1789)、[poj2485](https://vjudge.net/problem/POJ-2485)、[poj1258](https://vjudge.net/problem/POJ-1258)、[poj3026]...
- poj1258 - poj3026 - **应用场景**:适用于构建最小成本网络、电力线路铺设等问题。 **4. 拓扑排序** - **定义**:对于有向无环图(DAG),拓扑排序是按某种顺序对顶点进行排序,使得对于任意一条从顶点 u 到 v...
- **示例题目**: poj1789, poj2485, poj1258, poj3026 - **知识点**: - **Prim算法**:适用于稠密图,从任意一个顶点开始构建最小生成树。 - **Kruskal算法**:适用于稀疏图,按照边的权值从小到大依次加入到树中...
* 最小生成树算法:prim、kruskal、POJ1789、POJ2485、POJ1258、POJ3026 * 拓扑排序:POJ1094 * 串算法:POJ1035、POJ3080、POJ1936 * 哈希表和二分查找等高效查找法:POJ3349、POJ3274、POJ2151、POJ1840、POJ2002...
+ poj1789, poj2485, poj1258, poj3026 * 拓扑排序:poj1094 * 二分图的最大匹配:匈牙利算法 + poj3041, poj3020 * 最大流的增广路算法:KM算法 + poj1459, poj3436 三、数据结构 * 串:poj1035, poj3080, poj...
6. 最小生成树算法(prim, kruskal)(poj1789, poj2485, poj1258, poj3026) 7. 拓扑排序(poj1094) 8. 串(poj1035, poj3080, poj1936) 9. 哈希表和二分查找等高效查找法(poj3349, poj3274, POJ2151, poj1840, ...
- 示例题目:poj1789, poj2485, poj1258, poj3026 - **Kruskal算法**:适用于稀疏图。 - 示例题目:poj1789, poj2485, poj1258, poj3026 3. **流网络** - 示例题目:poj1094 4. **拓扑排序** - 示例题目:poj...
poj 1258 acm 北大acm
例题:poj1789、poj2485、poj1258、poj3026。 * 拓扑排序:拓扑排序是指对有向图进行拓扑排序的算法。例题:poj1094。 * 二分图的最大匹配:二分图的最大匹配是指在二分图中寻找最大匹配的算法。例题:poj3041、poj...
- 示例题目:POJ 1789, POJ 2485, POJ 1258, POJ 3026 - **网络流**:涉及到最大流、最小割等问题,适用于解决资源分配类问题。 - 示例题目:POJ 1094 - **匹配问题**:如匈牙利算法(Hungarian Method),适用于...
- POJ 1789, POJ 2485, POJ 1258, POJ 3026 最小生成树是一棵树形结构,它包含了图中的所有顶点,并且使得所有边的权重之和最小。 4. **最大流** - POJ 1094 最大流问题是指在一个流量网络中寻找一条从源点到...
- **示例题目**: POJ 1789, POJ 2485, POJ 1258, POJ 3026 - **注意事项**: 理解两种算法的核心思想和实现细节。 **4. 拓扑排序** - **定义**: 对有向无环图进行排序的一种方法。 - **应用场景**: 适用于任务...
- POJ 1258 - POJ 3026 #### 3. 流网络算法 - **描述**:流网络算法如Ford-Fulkerson算法等用于解决最大流问题。 - **应用场景**:物流调度、资源分配等。 - **相关题目**: - POJ 1094 #### 4. 强连通分量 - *...