(POJ 1258)Prim算法 最小生成树

最大生成树-C++代码程序 以模糊图为基础图,生成最大树。 从某一个定点出发,按μ从大到小的顺序依次 画边,要求不产生回路(即圈),直到所有顶点都连通为止。构造的一个特殊的图,称为最大树。 立即下载

Prim 只于顶点有关
基本思想

1.清空生成树,任取一个顶点加入生成树

2.在那些一个端点在生成树里,另一个端点不在生成树里的边中,选取一条权最小的边,将它和另一个端点加进生成树

3.重复步骤2,直到所有的顶点都进入了生成树为止,此时的生成树就是最小生成树


Description
Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course.
Farmer John ordered a high speed connection for his farm and is going to share his connectivity with the other farmers. To minimize cost, he wants to lay the minimum amount of optical fiber to connect his farm to all the other farms.
Given a list of how much fiber it takes to connect each pair of farms, you must find the minimum amount of fiber needed to connect them all together. Each farm must connect to some other farm such that a packet can flow from any one farm to any other farm.
The distance between any two farms will not exceed 100,000.
Input
The input includes several cases. For each case, the first line contains the number of farms, N (3 <= N <= 100). The following lines contain the N x N conectivity matrix, where each element shows the distance from on farm to another. Logically, they are N lines of N space-separated integers. Physically, they are limited in length to 80 characters, so some lines continue onto others. Of course, the diagonal will be 0, since the distance from farm i to itself is not interesting for this problem.
Output
For each case, output a single integer length that is the sum of the minimum length of fiber required to connect the entire set of farms.
Sample Input
4
0 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0
Sample Output
28


AC代码:

#include <iostream>
#include <algorithm>
#include  <cstdio>
#include <cstring>
using namespace std;
#define MAX 0x3f3f3f3f
int map[101][101];
int n;
void prim()
{
    int i,j,now;
    int sum=0;
    int logo[101];  //标记数组 标记某点是否已经加入最小生成树集合 也可以为bool类型
    int dis[101];    //记录邻接点的最短边
    for(i=1;i<n;i++)
    {
        dis[i]=map[0][i];
        logo[i]=0;
    }
    logo[0]=1;  //将起始点加入最小生成树集合
    for(i=1;i<=n-1;i++) //找生成树集合点集相连最小权值的边 
    {
        now=MAX;
        int min=MAX;
        for(j=1;j<n;j++)
        {
            if(logo[j]==0&&dis[j]<min)
            {
                now=j;
                min=dis[j];
            }
        }
        logo[now]=1;  //加入最小生成树集合
        sum+=min;  //记录权值和
        for(j=1;j<n;j++)    //更新dis数组
        {
            if(logo[j]==0&&dis[j]>map[now][j])
                dis[j]=map[now][j];
        }
    }
    printf("%d\n",sum);
}
int main()
{
    int i,j;
    while(scanf("%d",&n)!=EOF&&n)
    {
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                scanf("%d",&map[i][j]);  //输入边的信息
        prim();
    }
    return 0;
}
RK3568/RK3588 + YT 9215交换机芯片,MAC TO MAC 调试记录 原来的方案是rk3568 gmac 直接接phy,phy 接 switch 芯片,只是把交换芯片当交换用,驱动方面基本不用开发,但是要做vlan 那么必须涉及交换芯片的开发。选择裕太微有两个方面的原因:1.国产化替代2.可获得原厂技术支持3.目前已经完成 两个gmac 口交换芯片的配置,实现vlan,内部交换,两个光口可正常通信。 阅读详情

相关推荐

别再找在线API了!用C#调用微信电脑版自带的OCR,本地识别又快又准

本文详细介绍了如何利用C#调用微信电脑版内置的OCR引擎实现本地文字识别,解决传统云端API的隐私和网络依赖问题。微信OCR具备高精度中文识别、完全离线运行和零成本接入三大优势,特别适合企业文档电子化处理。通过实战代码演示了核心交互逻辑、批量处理流水线和表格数据提取等高级应用场景。

weixin_29295541的博客 588

POJ1258 最小生成树基础模板题通俗详细版(prim解法)

既然是基础题,就顺带详细一些讲一下算法吧 题目意思:就是输入一个N,代表有N个点,然后给你一个N*N的数组,假定数组为map[N][N]数组中的每个数map[i][j]代表从i到j所需要的时间,问题是从0走到N最快需要用多长时间 咋一看这样的题目用搜索应该也是可以的,不过我没试,后续试一下可以的话就把搜索的步骤也放上来。 首先,来看一下Prim算法 prim算法简单来说就是一个动态的更新路径的方法,举个栗子: 假如我们有 A B C D 四个点,点和点之间有的相连有的不相连,现在...

uyret的博客 1974

Silly Tavern(酒馆)AI 角色扮演下载与安装教程(Windows本地部署)

SillyTavern是一款开源AI角色扮演前端工具,支持沉浸式对话和长期角色互动。本文详细介绍了在Windows系统F盘部署SillyTavern的完整流程,包括下载项目、安装Node.js和Git环境、配置路径、启动服务等关键步骤,并特别说明非系统盘路径可能遇到的npm安装问题及解决方法。成功启动后,用户可通过浏览器访问本地地址使用该工具进行AI角色扮演互动。

Tan3851的博客 1万+

POJ2395 -- Prim算法

一。Prim算法和Dijkstra算法 1. Prim算法: 最小生成树,主要用于,N个村庄修路,怎么样成本最低。 2.Dijkstra算法:最短路径计算,主要用于,任何一个点到点1的最短距离。 区别: Prim算法和Dijkstra算法在代码实现上,几乎一样,唯一有个区别在于: Prim: Graph[k][j] Dijkstra: min+Graph[k][j]

Genius9_9的专栏 765

小白学电路之cadance搭建buffer电路

Buffer(缓冲器)是一种放大器或驱动电路,主要用于隔离输入和输出,以防止负载对前级电路造成干扰或影响。本文作者在电路方面是小白水平,目前正在学习,有不足之处欢迎指正。3.创建新的cellview,对此buffer进行仿真验证。2.创建buffer的symbol。电路中的V2的详细参数。

weixin_58051657的博客 1984

适配adv7280m相机到rk3588的安卓平台

Kernel-5.10/arch/arm64/configs/firefly_defconfig里面增加配置CONFIG_VIDEO_ADV7180=y。出现一次开不了机器的情况,接调试口发现,在set_fmt里面用s_ctrl对mipi的频率进行设置会出现异常。设备树修改kernel-5.10/arch/arm64/boot/dts/rockchip/13.dts。把MEDIA_ENT_F_ATV_DECODER改回MEDIA_ENT_F_CAM_SENSOR。第二次编译,仅仅刷新boot.img。

chenyq14的专栏 2447

数据结构——图的最小生成树和最大生成树之Prim算法理解和实现

图的最小生成树和最大生成树之Prim算法理解和实现

weixin_46096297的博客 2155

15、SQL Server查询优化与CPU负载管理

本文深入探讨了SQL Server查询优化与CPU负载管理的关键技术,包括强制连接类型的使用、键查找问题的解决、索引设计的最佳实践、高CPU负载的排查与优化,以及并行性的利弊与调整策略。通过优化查询逻辑、合理设计索引、监控与管理CPU资源,可以显著提升SQL Server的性能和稳定性。适用于数据库开发人员和DBA进行性能调优参考。

pz8901234的博客 76

POJ 2377 最大生成树(prim,kruskal)

题目:http://poj.org/problem?id=2377 最大生成树,改一改prim即可,把大小换一换,最初graph都fill为-1。 POJ就好搞一些无聊的重边,要把最大的数据放入graph。 #include #include #include #include #include #include using namespace std; const int maxn=10

智浩的博客 1395

把 SAP Fiori Launchpad Designer 的 Catalog 与 Group 传输讲透:从 CONF、CUST 到 Transport Request 的完整理解

SAP Fiori项目中,catalog和group的传输问题往往源于对FLPD层次模型的理解不足。FLPD包含configuration(系统级)和customizing(客户端级)两个层面,分别对应workbench request和customizing request传输方式。常见误区包括:混淆/UI2/FLPD_CONF和/UI2/FLPD_CUST入口、未提前创建传输请求、不了解层次覆盖机制(customizing会覆盖configuration)。当客户端修改configuration层的对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 100

第10篇:Agent + 爬虫 = 全自动数据采集专家

在企业级数据采集场景中,传统爬虫的痛点已经到了无法忽视的地步:而Agent + 爬虫的组合,就是这些痛点的终极解决方案。它的核心逻辑是:把爬虫从「人工写死的固定执行脚本」,升级为「能自主分析、自主决策、自主适配、自主修复的智能采集机器人」。我们在生产环境中做过对比测试:传统爬虫开发10个网站的采集脚本需要3人天,而Agent采集机器人只需要3分钟,页面改版后的修复成本从1人天降到了0,采集任务的成功率从62%提升到了95%以上。终端执行以下命令,安装基础依赖,与前9篇环境完全兼容: 二、核心能力拆解:Age

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1576

最大生成树

前言: 最大生成树算法和最小生成树算法几乎一样,只需要我们把最小生成树算法进行一点点改变即可。 当你用Krushal算法求最小生成树的时候,每一次选取的边都是最小的边,然后再去判断这条边是否可以加入最小生成树; 那么当你每一次选择的边是最大的边,然后再去判断这条边是否可以加入,那么这就是最大生成树的求取方法了; 例子: ...

titi2018815的博客 1万+

VxWorks系列 快速导航

Vxworks系列快速阅览导航

Mr.Sugarcane 1308

POJ1258最小生成树(prim算法)

POJ1258 思路:首先把第一个结点加入树中,每次往树中加入一个结点,加入的结点必须是与当前树中的结点距离最小那个点,这样每次把结点加入树中选取的都是最小权值,循环n-1次后把所有结点都加入树中。 #include #include #include using namespace std; const int MAXN = 1e9; //创建map二维数组储存图表,low数组记录每2个点

结构之美 算法之道 1155

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

prim算法 poj1258 Agri-Net 最小生成树基础题

Agri-NetTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 64460 Accepted: 26642DescriptionFarmer John has been elected mayor of his town! One of his campaign promises was to bring internet con...

bestsort 486

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

POJ 1258 (简单最小生成树,prim算法)

POJ1258 题意:输入n行每行代表第n个村庄分别与其它村庄的距离,求联系每个村庄的最小距离. 这道题完全可以当做prim算法的模板去写POJ2421,POJ 1251,POJ 2560,POJ 1789,POJ 2485. 最小生成树关键在于建图。 #include #include #define M 210 #define INF 0x3f3f3f3f

Since_natural_ran 981

poj1258--最小生成树prim算法实现

最小生成树prim算法实现 今天从志权师兄那里学会了最小生成树。所谓生成树,就是n个点之间连成n-1条边的图形。而最小生成树,就是权值(两点间直线的值)之和的最小值。             首先,要用二维数组记录点和权值。如上图所示无向图: int map[7][7];        map[1][2]=map[2][1]=4;        map[

Just Do IT 750

POJ-1258 Agri-Net(最小生成树+Prim算法)

POJ-1258 Agri-Net(最小生成树+Prim算法) Agri-NetTime Limit: 1000MS Memory Limit: 10000K   DescriptionFarmer John has been elected mayor of his town! One of his campaign promises was to bring internet connecti...

碳酸钙的01妖精的博客 252

最小生成树 Prim算法 POJ1258题解

Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45869 Accepted: 18880 Description Farmer John has been elected mayor of his town! One of his campaign promises was to

Dafang_Xu的博客 649

poj 1258 prim

题目链接:http://poj.org/problem?id=1258 题目思路: 最小生成树,用prim过一下 AC代码: #include #define inf 0xfffffff int map[101][101],n; int prim() { int dist[101]={0},vis[101]={0}; int i,now=0,j; for(i=1;i

黑山老猴妖的专栏 671

POJ1258 最小生成树prim算法

典型的prim算法 这类题目可以稍作变形,比如POJ2421 #include #include #define MAXN 102 typedef long elem_t; using namespace std; elem_t prim(int n,elem_t mat[MAXN][MAXN]){ elem_t closeEdge[MAXN],sum=0,min;

Coding for Dreams 1799

POJ 1258 - Agri-Net(最小生成树' Prim)

题目: http://poj.org/problem?id=1258 思路: 最小生成树模板题, Prim算法. CODE: #include #include #include #include using namespace std; const int INF = 0xffffff; int farm[105][105], d[105], n; bool used[105

Halo 529

POJ_1258_prim

POJ 1258 水题,prim板子 #include <iostream> #include <string.h> #define INF 0x3f3f3f3f using namespace std; const int maxn = 1e3; int a[maxn][maxn]; int vis[maxn]; int dist[maxn]; int n,m; ...

_llc的博客 186

POJ1258--贪心&最小生成树的prim算法

用prim算法实现,T1集合为所有点集合,T2集合表示已经是最小生成树中的点 lowcost[maxn]用来实现集合T1内各顶点到集合T2中各顶点的权值最小边的权值 nearvex[maxn]用来实现集合T1内顶点距集合T2中哪个顶点的距离最小 prim算法的思想: 初始:lowcost[k]=edge[v0][k] , nearvex[k]=v0;其中v0指的是从哪点来构造最小生成树。

buaa_shang的专栏 1577

poj1258 最小生成树 prim算法

Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 33106   Accepted: 13191 Description Farmer John has been elected mayor of his town! One of his campaig

习惯与规则决定命运 952
上一篇: (poj 2377)Kruskal算法 最大生成树
下一篇: 优快云-markdown编辑器语法——字体、字号与颜色(转自微wx笑)
Puppet__
博客等级 码龄9年 319粉丝 328原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值