poj-1287 Networking(Prim)
题目链接:http://poj.org/problem?id=1287
题目描述:
请先参考关于prim算法求最小生成树的讲解博客:https://www.cnblogs.com/LJHAHA/p/10051069.html
代码实现:
#include<iostream>
#include<cstdio>
using namespace std;
#define MAX 100
#define MAXCOST 0x7fffffff int graph[MAX][MAX]; int prim(int graph[][MAX], int n)
{
int lowcost[MAX];//lowcost[i]:表示以i为终点的边的最小权值,注意i的起点并不确定
int mst[MAX];//mst[i]:表示对应lowcost[i]的起点
int i, j, min, minid, sum = ;
//我们设V1是起点,进行初始化
for (i = ; i <= n; i++)
{
lowcost[i] = graph[][i];//如果该顶点未与V1相连,lowcost值为MAXCOST
mst[i] = ;//刚开始的时候,对于每一个Vi来说,它的起点都是V1
}
mst[] = ;//当mst[i]=0表示起点i加入MST
for (i = ; i <= n; i++)//执行n-1次,保证V1到达每个顶点的最短边都能够找到
{
min = MAXCOST;
minid = ;//起点Vi到顶点minid的边最短
for (j = ; j <= n; j++)//找出最短的边,用minid记录下该顶点,用min存下最短边
{
if (lowcost[j] < min && lowcost[j] != )
{
min = lowcost[j];
minid = j;
}
}
sum += min;//每找出一条最短边就加到权值中去
lowcost[minid] = ;//当lowcost[i]=0说明以i为终点的边的最小权值=0,也就是表示i点加入了MST
for (j = ; j <= n; j++)
{
if (graph[minid][j] < lowcost[j])
{
lowcost[j] = graph[minid][j];
mst[j] = minid;
}
}
}
return sum;
} int main()
{
int i, j, k, m, n;
int x, y, cost;
while(scanf("%d%d",&m,&n)){
if(m==)
break;
//初始化图G
for (i = ; i <= m; i++)
{
for (j = ; j <= m; j++)
{
graph[i][j] = MAXCOST;
}
}
//构建图G
for (k = ; k <= n; k++)
{
cin >> i >> j >> cost;
if(cost<graph[i][j]){
graph[i][j] = cost;
graph[j][i] = cost;
}
}
//求解最小生成树
cost = prim(graph, m);
//输出最小权值和
cout <<cost << endl;
}
return ;
}
poj-1287 Networking(Prim)的更多相关文章
- POJ 1287 Networking (最小生成树)
Networking 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/B Description You are assigned ...
- POJ 1287 Networking(最小生成树)
题意 给你n个点 m条边 求最小生成树的权 这是最裸的最小生成树了 #include<cstdio> #include<cstring> #include<algor ...
- POJ 1287 Networking(最小生成树裸题有重边)
Description You are assigned to design network connections between certain points in a wide area. Yo ...
- POJ 1258 Agri-Net(Prim)
( ̄▽ ̄)" #include<iostream> #include<cstdio> #include<cmath> #include<algori ...
- POJ - 1287 Networking (最小生成树&并查集
You are assigned to design network connections between certain points in a wide area. You are given ...
- POJ.1287 Networking (Prim)
POJ.1287 Networking (Prim) 题意分析 可能有重边,注意选择最小的边. 编号依旧从1开始. 直接跑prim即可. 代码总览 #include <cstdio> #i ...
- POJ 2431 Expedition(探险)
POJ 2431 Expedition(探险) Time Limit: 1000MS Memory Limit: 65536K [Description] [题目描述] A group of co ...
- ZOJ1372 POJ 1287 Networking 网络设计 Kruskal算法
题目链接:problemCode=1372">ZOJ1372 POJ 1287 Networking 网络设计 Networking Time Limit: 2 Seconds ...
- c/c++ 用普利姆(prim)算法构造最小生成树
c/c++ 用普利姆(prim)算法构造最小生成树 最小生成树(Minimum Cost Spanning Tree)的概念: 假设要在n个城市之间建立公路,则连通n个城市只需要n-1条线路.这时 ...
随机推荐
- 移动端判断ios还是android终端
<script> //判断ios还是android终端 var u = navigator.userAgent; var isAndroid = u.indexOf ...
- 不想用ssh框架
学过三遍多的样子,没有感悟到特别多的好处. 现在工作都用,想找一个不用这个的工作就不好找.c的话,觉得没有Java面向对象提炼得好. 不是很明白怎么都用,知道自己不想用.里边太多复杂和要背下来的东西, ...
- jsp 标签文件
一. tag file 简介 tag file从两个方面简化了自定义标签的开发.首 先,tag file无须提前编译,直到第一次被调用才会编 译.除此之外,仅仅使用JSP语法就可以完成标签的扩 展定义 ...
- java爬虫笔记
一.URl解释 1.URl统一资源定位符, Uniform Resource Location 也就是说是Internet上信息资源的字符串,所谓的网页抓取就是把URl地址中指定的网络资源从网络中读取 ...
- AI学习吧-购物车-添加商品接口
create接口流程 需求:向购物车添加商品 流程:写shopping_cart路由--->写ShoppingCart视图函数--->使用Authuser校验用户是否登录--->首先 ...
- JAVA,字符串替换
package l515; //例5.15 //字符串替换 public class NewStr { public static void main(String[] args) { String ...
- 目标检测之选择性搜索-Selective Search
一.滑动窗口检测器 一种用于目标检测的暴力方法就是从左到右,从上到下滑动窗口,利用分类识别目标.为了在不同观察距离处检测不同的目标类型,我们可以使用不同大小和宽高比的窗口 得到窗口内的图片送入分类器, ...
- PV-UV-QPS
QPS:每秒查询率(Query Per Second) ,每秒的响应请求数,也即是最大吞吐能力.QPS = req/sec = 请求数/秒QPS统计方式 [一般使用 http_load 进行统计]QP ...
- BootStrap标题制作模板
<!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="UTF-8&q ...
- Windows Docker 使用笔记
1.设置共享盘 2.设置加速器.国内拉取docker镜像会出现卡顿甚至拉不下来的问题,原因在于大陆沿海的一道墙,在docker设置中添加镜像代理(registry-mirrors)PS:镜像加速器地址 ...