浙江大学数据结构MOOC-课后习题-第七讲-图4 哈利·波特的考试

题目汇总
浙江大学数据结构MOOC-课后习题-拼题A-代码分享-2024

题目描述

在这里插入图片描述

代码展示

照着教程视频来的,没啥好说的捏

#include <cstdlib>
#include <iostream>

#define MAXSIZE 100
#define IFINITY 65535
typedef int vertex;
typedef int weightType;

/* 边 */
struct ENode
{
	vertex V1, V2;
	weightType weight;
};
typedef ENode* ptrToENode;
typedef ptrToENode Edge;

/* 图结点 */
struct GNode
{
	int Nv;	/* 节点数 */
	int Ne;	/* 边数 */
	weightType G[MAXSIZE][MAXSIZE];	/* 邻接矩阵 */
};
typedef GNode* ptrToGNode;
typedef ptrToGNode MGraph;

MGraph creatGraph()
{	
	vertex V, W;
	MGraph G = (MGraph)malloc(sizeof(GNode));
	G->Ne = 0;
	std::cin >> G->Nv;

	for (V = 0; V < G->Nv; V++)
	{
		for (W = 0; W < G->Nv; W++)
		{
			G->G[V][W] = IFINITY;
		}
	}
	return G;
}

void insertEdge(MGraph Graph, Edge E)
{
	Graph->G[E->V1][E->V2] = E->weight;
	Graph->G[E->V2][E->V1] = E->weight;
}
MGraph buildGraph()
{
	MGraph G = creatGraph();
	
	//插入边
	std::cin >> G->Ne;
	if (G->Ne != 0)
	{
		Edge E = (Edge)malloc(sizeof(ENode));
		for (int i = 0; i < G->Ne; i++)
		{
			std::cin >> E->V1 >> E->V2 >> E->weight;
			E->V1--;
			E->V2--;
			insertEdge(G, E);
		}
	}
	return G;
}

void floyd(MGraph Graph, weightType D[][MAXSIZE])
{
	vertex i, j, k;
	
	/* 初始化 */
	for (i = 0; i < Graph->Nv; i++)
	{
		for (j = 0; j < Graph->Nv; j++)
		{
			D[i][j] = Graph->G[i][j];
		}
	}

	for(k = 0; k < Graph->Nv; k++)
	{
		for (i = 0; i < Graph->Nv; i++)
		{
			for (j = 0; j < Graph->Nv; j++)
			{
				if ((D[i][k] + D[k][j]) < D[i][j])
					D[i][j] = D[i][k] + D[k][j];
			}
		}	
	}
}

weightType findMaxDist(MGraph Graph, weightType D[][MAXSIZE], vertex i)
{
	weightType maxDist;
	vertex j;

	maxDist = 0;
	
	for (j = 0; j < Graph->Nv; j++)
	{
		if (D[i][j] > maxDist && i != j)
			maxDist = D[i][j];
	}
	return maxDist;
}
void findAnimal(MGraph G)
{	
	
	weightType D[MAXSIZE][MAXSIZE], maxDist, minDist;
	vertex animal, i;
	

	/* 利用Floyd求出任意两点间的最短路径长度 */
	floyd(G, D);
	
	/* 找出每行中的最大值, 然后从所有最大值中找出最小值 */
	minDist = IFINITY;
	for (i = 0; i < G->Nv; i++)
	{	
		maxDist = findMaxDist(G, D, i);
		if (maxDist == IFINITY)
		{
			std::cout << "0";
			return;
		}
		if (maxDist < minDist)
		{
			minDist = maxDist;
			animal = i + 1;
		}
	}
	std::cout << animal << ' ' << minDist;
}
int main()
{
	MGraph G = buildGraph();
	findAnimal(G);
	return 0;
}

心路历程

感觉有点懈怠了…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/652612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pdf打开方式怎么设置默认?分享这几种设置方法

pdf打开方式怎么设置默认&#xff1f;你是否曾遇到过打开PDF文档时&#xff0c;默认的打开程序并非你所需要的&#xff0c;从而影响了工作效率&#xff1f;别担心&#xff0c;本文将为你详细解读如何设置PDF的默认打开方式&#xff0c;让你的工作更加高效便捷。 首先&#xff0…

精准数据提取:提升业务分析与决策效率

在当今信息爆炸的时代&#xff0c;数据已经成为企业运营和决策的核心驱动力。然而&#xff0c;面对海量的数据&#xff0c;如何快速、准确地提取出有价值的信息&#xff0c;成为了摆在众多企业面前的一大挑战。本文将探讨如何通过精准数据提取来提升业务分析与决策的效率。 一…

汇编原理(二)寄存器——内存访问

一个字 两个字节 双字 字节为8位 字为16位&#xff08;看两格&#xff09; 双子dword32位&#xff08;看四格&#xff09; 内存中字的存储&#xff1a; 0地址单元中存放的字节型数据是多少&#xff1f; 0地址字单元中存放的字型数据是多少&#xff1f; 2地址字单元中存放…

【招聘】易基因科技诚聘销售总监 虚位以待

&#x1f680; 关于我们 易基因拥有一支充满活力的科研服务团队&#xff0c;致力于以“引领表观遗传学科学研究与临床应用”为愿景&#xff0c;依托高通量测序技术和云数据分析平台&#xff0c;为医疗机构、科研机构、企事业单位等提供以表观遗传学技术为核心的多组学科研服务…

821. 字符的最短距离 - 力扣

1. 题目 给你一个字符串 s 和一个字符 c &#xff0c;且 c 是 s 中出现过的字符。 返回一个整数数组 answer &#xff0c;其中 answer.length s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。 两个下标 i 和 j 之间的 距离 为 abs(i - j) &#xff0c…

Vue 组件生命周期:探索钩子

title: Vue 组件生命周期&#xff1a;探索钩子 date: 2024/5/27 18:42:38 updated: 2024/5/27 18:42:38 categories: 前端开发 tags: 生命周期异步加载通信原理父子通信兄弟通信跨层通信性能优化 第 1 章&#xff1a;介绍与背景 1.1 什么是 Vue 组件生命周期&#xff1f; …

超声波清洗机哪家好一点?四款无比卓越精品不可错过

在日常生活中&#xff0c;眼镜成为了我们不可或缺的伙伴&#xff0c;无论是阅读书籍、工作还是享受自然风光&#xff0c;清晰的视野总是至关重要。然而&#xff0c;眼镜上不可避免地会沾染灰尘、油脂甚至细菌&#xff0c;影响我们的视觉体验。传统的眼镜清洗方法虽然简单&#…

【Godot4.2】Godot中的继承与组合

概述 继承和组合是编程中常用的两种策略,旨在尽可能多地重用代码。继承应用得非常广泛&#xff0c;但我认为组合在很多场景下会更加合适一些。 基于组合&#xff0c;游戏开发前辈们专门设计出了实体组件模式&#xff08;EC模式&#xff09;和进阶的ECS模式。本篇所提及的Godot…

芯片设计 | FPGA设计的各种仿真概念分析

前仿真,即功能仿真。 可使用专用于仿真的工具对设计进行功能仿真,以验证电路功能是否符合设计要求。 通过功能仿真能够及时发现设计中的错误,从而加快设计进度,提高设计的可靠性。 综合后的仿真 把综合生成的标准延时反标注到综合仿真模型去,可估计门延时带来的影响,…

如何搭建个人观测云平台

如何搭建个人观测云平台 安装DataKit什么是DataKit&#xff1f; 仪表板指标管理监控 开通阿里云观测云服务后&#xff0c;在观测云平台页面进行下面的操作。 安装DataKit 什么是DataKit&#xff1f; DataKit 是观测云官方发布的数据采集应用&#xff0c;支持上百种数据的采集…

【二叉树】非递归实现前中后序遍历

目录 前言 算法思想 非递归实现前序遍历 过程分析 代码 非递归实现中序遍历 过程分析 代码 非递归实现后序遍历 过程分析 代码 前言 1&#xff09;前序&#xff1a;根 左子树 右子树 2&#xff09;中序&#xff1a;左子树 根 右子树 3&#xff09;后序&#xff1…

CSS学习笔记:rem实现移动端适配的原理——媒体查询

移动端适配 移动端即手机端&#xff0c;也称M端 移动端适配&#xff1a;同一套移动端页面在不同屏幕尺寸的手机上可以实现宽度和高度的自适应&#xff0c;也就是页面中元素的宽度和高度可以根据屏幕尺寸的变化等比缩放 rem配合媒体查询可实现移动端适配 rem单位 媒体查询 …

post请求

文章目录 一、get请求和post请求区别二、get请求和post请求的用法对比1.get请求2.post请求 三、如何知道是get请求还是post请求 一、get请求和post请求区别 二者区别就是一句话&#xff1a;post请求更安全 二、get请求和post请求的用法对比 1.get请求 get请求: 请求参数&am…

安泰电子:高压功率放大器应用场合介绍

高压功率放大器是一种电子设备&#xff0c;用于将低电压信号放大到较高电压水平&#xff0c;以满足各种应用需求。它在多个领域中具有广泛的应用&#xff0c;包括科学研究、工业生产、通信技术以及医疗设备。下面安泰电子将介绍高压功率放大器的应用场合。 科学研究 高压功率放…

SpringBoot实现接口防抖的几种方案,杜绝重复提交

插&#xff1a; AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家(前言 – 人工智能教程 ) 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

YOLOV10阅读总结

GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection YOLOv10 - Ultralytics YOLO Docs https://arxiv.org/pdf/2405.14458 论文地址 最近yolo又出了个yolov10了&#xff0c;不得不感慨CV是真卷&#xff0c;毕竟yolov9也才没多久。记录一下阅读笔记。…

curl请求url正常,通过web端请求就400异常的问题记录

通过抓包发现如上图&#xff0c;有2个authorization header&#xff0c;其中一个是开发人员代码生成的&#xff0c;另一个是web端http请求自己携带的。目标是去除web自己携带的。 解决方法&#xff1a; 生成一个FeignConfig的类&#xff0c;requestInterceptor进行空实现。 Fe…

暑期社会实践即将强势来袭,投稿三下乡文章最强攻略

以热爱充实自我 以笃行丰盈青春 这个盛夏“乡”约 纷纷迈出了社会实践的有力步伐 在展开社会实践的同时 也不要忘记投稿宣传的重要性哦 快快收藏住这份投稿攻略 助力团队展现更多精彩的实践故事! No.1 感悟思想伟力&#xff0c;守好“红色根脉” No.2 循迹“八八战略…

【基于 PyTorch 的 Python 深度学习】9 目标检测与语义分割(2)

前言 文章性质&#xff1a;学习笔记 &#x1f4d6; 学习资料&#xff1a;吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容&#xff1a;根据学习资料撰写的学习笔记&#xff0c;该篇主要介绍了优化候选框的几种方法。 一、优化候选框的…

人工智能超万卡集群的核心设计原则和架构

超万卡集群的核心设计原则和架构 超万卡集群建设方兴未艾,当前主要依托英伟达GPU及其设备。英伟达GPU在大模型训练中表现卓越,但国产AI芯片虽进步显著,性能与生态构建仍存差距。面对诸多挑战,构建技术领先、基于国产生态的超万卡集群,仍需不断突破与创新。 大模型升级至万…