HDU1233 - 还是畅通工程 最小生成树,用了三种姿势AC

无法找到来自源 nvlddmkm 的事件 ID 14 的描述 具体错误是: 无法找到来自源 nvlddmkm 的事件 ID 14 的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。 出现这样错误的原因有很多了,有可能是硬件有可能是软件。由于我是刚配置的电脑,起初非常怀疑是自己组装的问题,折腾了好久,心态爆炸!!!先说我报这样错误的情况,以及解决办法,供后面人参考。 ... 阅读详情

HDU1233 - 还是畅通工程 : http://acm.hdu.edu.cn/showproblem.php?pid=1233

用了三种姿势AC这题之后, 感觉对最小生成树的理解又更深了一层. 嗯, 让你们看看我用的是哪三种姿势

方法 1 :

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN = 5000;
int Father[MAXN],Ans;
int N,M;
int x,y;
struct Node{
	int Now,Next,Len;
}Edge[MAXN];
void Initial()
{
	M = (N * (N - 1)) / 2;
	Ans = 0;
	for(int i = 0;i < MAXN;i++)
		Father[i] = i;
}
bool Cmp(Node x,Node y)
{
	return x.Len < y.Len;
}
int Find(int x)
{
	return x == Father[x] ? x : Father[x] = Find(Father[x]);
}
int main()
{
	while(scanf("%d",&N),N)
	{
		Initial();
		for(int i = 1;i <= M;i++)
			scanf("%d%d%d",&Edge[i].Now,&Edge[i].Next,&Edge[i].Len);	
		sort(Edge + 1,Edge + M + 1,Cmp);//注意是从1开始的编号,并按边的长度升序排序 
		for(int i = 1;i <= M;i++)
		{
			int xx = Find(Edge[i].Now),yy = Find(Edge[i].Next);
			if(xx != yy)
				Father[xx] = yy,Ans += Edge[i].Len;
		}
		printf("%d\n",Ans);
	}
	return 0;
}
/*用并查集要用到结构体来储存节点和边,适合边少的情况 


方法 2 :

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN = 105;
const int Inf = 1<<30;
int Vis[MAXN],Dist[MAXN],Map[MAXN][MAXN],Ans,MIN;
int N,M;
int x,y,z;
void Initial()
{
	Ans = 0;
	M = (N * (N - 1) / 2);
	fill(Vis,Vis + MAXN,0);
	memset(Map,0,sizeof(Map));
//	fill(Dist,Dist + MAXN,Inf);
}
void Deal()
{
	Vis[1] = 1; 
	for(int i = 1;i <= N;i++)//假定从编号1开始找 
		Dist[i] = Map[i][1];	
}
void Prim()
{
	Deal();
	int i,j,k;
	for(i = 2;i <= N;i++)
	{
		k = i;
		MIN = Inf;
		for(j = 2;j <= N;j++)//找出到A集合的最短距离MIN和编号k 
			if(!Vis[j] && Dist[j] < MIN)
				MIN = Dist[j],k = j;
		Ans += MIN;
		Vis[k] = 1;//标记 
		for(j = 2;j <= N;j++)//更新其他点j到A集合的最短距离Dist[j] 
			if(Map[j][k] < Dist[j])
				Dist[j] = Map[j][k];
	}
	printf("%d\n",Ans);
}
int main()
{
	while(scanf("%d",&N),N)
	{
		Initial();
		for(int i = 1;i <= M;i++)
		{
			scanf("%d%d%d",&x,&y,&z);
			Map[x][y] = Map[y][x] = z;//无向图 
		}
		Prim(); 
	}
	return 0;
}


方法 3 :

#include <iostream>
#include <cstdio>
#include <queue>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN = 105;
const int Inf = 1<<30;
int Vis[MAXN],Dist[MAXN],Map[MAXN][MAXN],Ans,MIN;
int N,M;
int x,y,z;
struct Node{
	int v,len;
	bool friend operator <(Node x,Node y)
	{
		return x.len > y.len;
	}
};
void Initial()
{
	Ans = 0;
	M = (N * (N - 1) / 2);
	fill(Vis,Vis + MAXN,0);
	fill(Dist,Dist + MAXN,Inf);
	memset(Map,0,sizeof(Map));
}
void Prim()
{
	priority_queue<Node>P;//用优先队列,可以减少一定的运行时间
	Node t;
	t.v = 1,t.len = 0;
	P.push(t);
	while(!P.empty())
	{
		t = P.top();
		P.pop();
		if(Vis[t.v])continue;
		Vis[t.v] = 1;
		Ans += t.len;
		for(int i = 1;i <= N;i++)
			if(!Vis[i] && Map[i][t.v] < Dist[i])
			{
				Node p;
				Dist[i] = Map[i][t.v];
				p.v = i,p.len = Map[i][t.v];
				P.push(p);
			}
				
	}
	printf("%d\n",Ans);
}
int main()
{
	while(scanf("%d",&N),N)
	{
		Initial();
		for(int i = 1;i <= M;i++)
		{
			scanf("%d%d%d",&x,&y,&z);
			Map[x][y] = Map[y][x] = z;//无向图 
		}
		Prim(); 
	}
	return 0;
}




Android-Zygote进程的诞生—从init到Zygote启动 Android Zygote进程启动流程解析 Android系统的Zygote进程是所有应用进程的父进程,由init进程创建。启动流程分为: 内核阶段:加载init进程(PID=1) init进程阶段: 挂载基础文件系统(tmpfs、proc等) 设置SELinux安全策略 解析init.rc配置文件 Zygote启动:init进程通过app_process启动Zygote,预加载系统资源 SystemServer:Zygote fork出系统服务进程 关键点: init是用户空间第一个进程...... 阅读详情

相关推荐

MDB协议中设备级别和选项(Levels and Options)

MDB协议的LEVEL级别介绍

hbstart的博客 936

hdu 1233 还是畅通工程

http://acm.hdu.edu.cn/showproblem.php?pid=1233 这个题我用的贪心和并查集来解决的。(kruskal算法) 首先用贪心对长度排序,然后按照长度从小到大选择连接,没有被联通的则直接连,要注意一个问题就是如果4个村庄是1 4联通了, 2 3联通了,那么肯定还要让这两个集合联通(用并查集)。 因此我用了一个p来表示不同的集合。 AC

蚕豆儿 958

从大疆智图到Cesium:3D Tiles模型加载与Web三维场景构建实战

本文详细介绍了如何利用大疆智图生成3D Tiles数据,并通过Cesium在Web端实现高效加载与三维场景构建。从大疆智图参数设置到Cesium环境配置,再到3D Tiles性能调优与高级功能实现,提供了一套完整的实战指南,帮助开发者快速掌握3D Tiles模型加载与Web三维场景构建技术。

weixin_30520015的博客 1279

畅通工程系列题解

目录 HDU 1232 畅通工程 【传送门】 HDU 1233 还是畅通工程 【传送门】 HDU 1863 畅通工程 【传送门】 HDU 1874 畅通工程续 【传送门】 HDU 1875 畅通工程再续 【传送门】 HDU 1879 继续畅通工程 【传送门】 HDU 1232 畅通工程 【传送门】 Time Limit: 4000/2000 MS (Java/Others)...

lesileqin的博客 1409

Vivado时序违约小结

目录1. setup time违约1.1 逻辑级数太高1.2 Fanout太大2. hold time 违约2.1 异步信号处理导致hold time违约 1. setup time违约 建立时间是工程设计中最常遇到的问题了。一般说来,导致建立时间违例主要有两个原因:逻辑级数太大或者扇出太大,当然也可以尝试通过降频来解决建立时间违约。 1.1 逻辑级数太高 Levels指的是逻辑级数logic level,一个logic level的延迟对应的是一个LUT和一个Net的延迟,对于不同的器件,不同频率的设计能

mu_guang_的博客 7152

Mumax3高效模拟技巧:如何利用代码模板快速完成磁性材料特性分析

本文介绍了利用Mumax3代码模板库提升磁性材料微磁学模拟效率的核心方法。通过构建模块化的环境配置、材料库和特征长度计算模板,研究者可以快速组装模拟方案,自动化参数扫描与结果分析,从而将精力聚焦于物理问题本身,实现工作效率的指数级提升。

zz67890的博客 550

HDU 1233 还是畅通工程(最小生成树入门)

HDU 1233 还是畅通工程(最小生成树入门) http://acm.hdu.edu.cn/showproblem.php?pid=1233 题意:        某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公

code 1182

【CubeMX】STM32G474 HRTIM 互补PWM与死区时间配置实战

本文详细介绍了如何使用STM32CubeMX配置STM32G474的高分辨率定时器HRTIM生成互补PWM波形并精确设置死区时间。通过实战步骤讲解时钟配置、死区计算与高级功能,帮助工程师在电机驱动和电源应用中实现精准控制,避免上下桥臂直通风险。

grpc6streamer的博客 723

HDOJ 1233 还是畅通工程

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233 源代码://HDOJ 1233 AC #include #include using namespace std; #define MAX 99999 #de

90worker 1797

【系统架构设计师-2023年真题】综合知识-答案及详解

要实现多任务间的协同工作,操作系统必须提供任务间的通信手段。嵌入式操作系统一般都会提供多任务间通信的方法,其中()是任务间最直接、最明显的通信方法,也是访问共享的数据结构,即不同的任务都可以访问同一地址空间。()作为一种更高级的通信方式,能够在同一处理器的各个任务间传递任意长度(理论上只受物理内存和机器字长限制)的信息。(1)A. 共享内存 B. Socket C. 消息传递 D. 信号量(2)A. 共享内存 B. Socket C. 消息传递 D. 信号量【答案】A、C关于星型拓扑结构,下列说法正确的是(

数据知道的博客 1万+

r3live 使用前提 雷达-相机外参标定 livox_camera_lidar_calibration

港科大livox_camera_calib虽然操作方便,但是使用mid360雷达会有视角问题(投影三维点到相机),尝试了很多场景,标定效果都不理想(推荐场景是楼梯间),看来港大的更适合avia之类窄角度的雷达。如果标定效果不好的话,就使用 getExt2节点,getExt1节点只优化外参,而getExt2节点在计算的时候会将一开始计算的内参作为初值和外参一起优化。一般使用getExt1节点即可,如果在外参初值验证过,并且异常值已经剔除后,优化还是有较大的残差,那么可以使用getExt2试一试。

z1872385的博客 2399

hdu 1233 还是畅通工程 水题~~~~~~~~~kruskal算法AC

Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编

Lionel 1112

风险登记册vs问题日志:项目经理必须掌握的区别与应用

在项目管理的世界里,风险登记册和问题日志就像是项目经理的两个得力助手。我们的目的就是要搞清楚这两个助手各自的特点、区别以及如何在项目中好好使用它们。范围涵盖了项目从启动到结束的整个过程,无论是小项目还是大项目,都能从对这两个工具的正确使用中受益。我们先会用有趣的故事引出风险登记册和问题日志的概念,然后像给小学生讲故事一样解释它们是什么。接着分析它们之间的关系和区别,再用代码示例模拟它们在项目中的应用,之后介绍实际的应用场景、推荐相关工具和资源,探讨未来的发展趋势和挑战。

项目管理的博客 872

HDOJ1233之还是畅通工程---最小生成树(普利姆)

HDOJ之还是畅通工程—最小生成树(普利姆) 题目描述: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随...

qiaomm的个人博客 554

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

畅通工程系列(并查集+最小生成树)

并查集:两个点是否具有直接或者间接的联系,就如同一棵树上的树干,即使不直接相连,具有相同的树根(根节点),也可认为有联系。并查集的函数就是判断两个数是否具有联系,并且建立联系。可归结为两个模板代码: pre[i]=j; //意为i的根节点是j int find(int x){ //寻找x的根节点 int r=x; while(pre[r]!=r) //x的...

智慧园子的代码世界 263

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HDU1233 还是畅通工程

问题链接:HDU1233 还是畅通工程。 问题描述:参见上述链接。 问题分析:这是一个最小生成树的为问题,解决的算法有Kruskal(克鲁斯卡尔)算法和Prim(普里姆)算法。 程序说明:本程序使用Kruskal算法实现。有关最小生成树的问题,使用克鲁斯卡尔算法更具有优势,只需要对所有的边进行排序后处理一遍即可。程序中使用了并查集,用来判定加入一条边后会不会...

weixin_34133829的博客 120

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

还是畅通工程(最小生成树)

还是畅通工程 --HDU 1233 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1233 –003 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小...

GG_Bond的博客 150

hdu-1233-还是畅通工程

原文链接:hdu-1233-还是畅通工程原文:还是畅通工程Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 53016    Accepted Submission(s): 24061Problem Description某省调查乡村交通状况...

IT_xiaolaoshu的博客 378

HDU - 1233 还是畅通工程 (最小生成树)

某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( &lt; 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数...

洛 水 183

HDU——1233 还是畅通工程(最小生成树问题)

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233 样例: Sample Input 3 1 2 1 1 3 2 2 3 4 4 1 2 1 1 3 4 1 4 1 2 3 3 2 4 2 3 4 5 0 Sample Output 3 5 题意:给你n个村庄,以及n个村庄之间的距离信息,问你连通n个村庄的最小公路距离。 解题思路: 由于给出的信息是边,所以我们可以用结构体数组存储边,那么对于边而言,我们可以利用Kruskal算法归并边解决,

pursuit的博客 508

还是畅通工程(hdu-1233)

HDU - 1233 传送门 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两.

Silence的博客 266

hdu 1233 还是畅通工程(Prim最小生成树)

<br />/* Author: ACb0y Date: 2010-9-15 Type: MST ProblemId: hdu 1233 还是畅通工程 Result: AC */ #include<iostream> using namespace std; #define inf 999999999 int n, q; int g[110][110]; int vis[110]; int d[110]; void MST_Prim() { int i, j

个人独立博客http://www.acb0y.cn/ 1003

【代码超详解】HDU 1233 还是畅通工程(Prim算法求最小生成树 · 模板题,156 ms)

一、题目描述 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 71626 Accepted Submission(s): 32388(2019/11/3) Problem Description 某省调查乡村交通状况,...

COFACTOR 316

HDU 1233-还是畅通工程(经典最小生成树)

还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 74407 Accepted Submission(s): 33605 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距...

在读NLP硕士 248

畅通工程的系列题

畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 51259    Accepted Submission(s): 27325 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,

juanlansexuehua的博客 747
上一篇: HDU1102 - Constructing Roads 用优先队列优化Prim最小生成树
下一篇: HDU1532 - Drainage Ditches 网络流之最大流
P_rogrammer
博客等级 码龄12年 0粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值