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

news2024/11/18 3:42:10

题目汇总
浙江大学数据结构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;
}

心路历程

感觉有点懈怠了…

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【StableDiffusion】SD1.4、1.5、2.0、2.1 和 SDXL0.9-1.0、SDXL turbo 等的区别

总览 1.基础sd base model家族&#xff1a;SD1.4、SD1.5、SD1.5-LCM、SD2.0、SD2.0-768、SD2.1、SD2.1-768、SD2.1-UNCLIP 2.升级sdxl base model家族&#xff1a;SDXL0.9、SDXL1.0、SDXL1.0-LCM、SDXL-DISTILLED、SDXL-TURBO 3.专门用于视频生成的 SVD 家族&#xff1a;SVD、…

洪师傅代驾系统开发 支持公众号H5小程序APP 后端Java源码

代驾流程图 业务流程图 管理端设置 1、首页装修 2、师傅奖励配置 师傅注册后,可享受后台设置的新师傅可得的额外奖励; 例:A注册了师傅,新人奖励可享受3天,第一天的第一笔订单完成后可得正常佣金佣金*奖励比例 完成第二笔/第三笔后依次可得正常佣金佣金*奖励比例 完成的第四…

城市空气质量数据爬取分析可视化

城市空气质量数据爬取分析可视化 一、效果展示二、完整代码2.1 数据爬取代码2.2 数据分析代码一、效果展示 先来看一下数据情况以及可视化效果,本项目使用了pyecharts绘制了日历图、雷达图、折线图、柱状图、饼图和平行坐标系。完整代码附后: 数据如下: 日历图: 饼图: …

Docker基础篇之常用命令

文章目录 1. 帮助启动类命令2. 镜像命令3. 容器命令4. 总结 1. 帮助启动类命令 启动docker&#xff1a; systemctl start docker停止docker&#xff1a; systemctl stop docker重启docker&#xff1a; systemctl restart docker查看docker 的运行状态&#xff1a; systemc…

ubuntu 22.04 appearance设置没有dock选项

1、问题描述 解决办法可以直接跳到后面见2 下图是我同学电脑的appearance界面选项&#xff0c;她有Dock的界面显示。 下面是我的界面&#xff0c; 没有Dock&#xff1a; 然后各种app的界面都在最底下&#xff0c;而且每次只能点击左上角的activities才能显示。 但是如果不打开某…

YoloV8实战:各种图绘制汇总(mAP50、mAP50-95、loss、PR_curve、F1_curve)|科研必备|绘图神器

摘要 本文的内容是告诉大家如何绘制mAP50、mAP50-95、loss、PR_curve、F1_curve等图像,方便大家写论文。 绘制mAP50、mAP50-95、loss等图。 先上效果,如下图: 首先将,训练的result.csv汇总到一个文件夹下面(这样方便寻找),要不然找起来太麻烦。如下图: 我都放到re…

STM32H750外设之ADC通道选择

目录 概述 1 通道选择功能介绍 2 通道选择&#xff08; SQRx、 JSQRx&#xff09; 2.1 通道复用 2.1.1 通道介绍 2.1.2 通道框图 2.2 转换分组 2.3 内部专用通道 3 通道预选寄存器 (ADCx_PCSEL) 3.1 功能介绍 3.2 预选通道寄存器 概述 本位主要介绍STM32H750外设之…

【钉钉AI助理】测试用例创造师,快速生成高质量的测试用例!

前言&#xff1a; 我最近发现了个提升工作效率的秘密武器——钉钉AI助理里的‘测试用例创造师’。 试了下&#xff0c;简直是工作中的小确幸&#xff0c;既增加了乐趣&#xff0c;又真的帮了大忙。往里一粘需求&#xff0c;唰唰几下&#xff0c;各种测试场景就蹦出来了&#…

188M2传奇BLUEM2引擎源码开源版附带编译教程2024最新开源

2024最新开源188M2传奇BLUEM2引擎源码开源2版最初开源版本附带编译教程 源码下载地址&#xff1a;极速云 如果需要优惠可以选择第一版最初开源188M2传奇BLUEM2引擎源码开源1版最初开源版本附带编译教程2024最新开源

帆软生成csv文件

帆软官网提供了导出csv文件的插件&#xff0c;需要下载指定版本的插件 请选择具体的详情点击官网介绍&#xff1a;文档介绍 插件地址&#xff1a;插件地址

Monocular Model-Based 3D Tracking of Rigid Objects:2005年综述

1 Introduction 在视频序列中跟踪一个物体意味着在物体或摄像机移动时&#xff0c;持续识别其位置。根据物体类型、物体和摄像机的自由度以及目标应用的不同&#xff0c;有多种方法可供选择。二维跟踪通常旨在跟踪物体或物体部分的图像投影&#xff0c;这些物体的三维位移会导…

微信资源混淆,导致的约束布局 Constraintlayout 控件重叠!

问题 1、广告六要素 虽然我不参与广告 sdk 接入等相关工作&#xff0c;但是最近总是听到一个词广告六要素。这到底是什么&#xff1f; 国内下载类广告&#xff0c;尤其是针对移动应用推广的广告&#xff0c;其成功实施往往围绕几个关键要素进行&#xff0c;这些要素能够帮助…

互联网政务应用安全管理规定:使用安全连接方式访问

前几日&#xff0c;由中央网络安全和信息化委员会办公室、中央机构编制委员会办公室、工业和信息化部、公安部等4部门联合制定的《互联网政务应用安全管理规定》&#xff08;以下简称规定&#xff09;发布了&#xff0c;规定定义了互联网政务应用&#xff0c;也对互联网政务应用…

stream-并行流

定义 常规的流都是串行的流并行流就是并发的处理数据&#xff0c;一般要求被处理的数据互相不影响优点&#xff1a;数据多的时候速度更快&#xff0c;缺点&#xff1a;浪费系统资源&#xff0c;数据少的时候开启线程更耗费时间 模版 Stream<Integer> stream1 Stream.of…

拿捏数据结构- 链式二叉树

链式二叉树的概念&#xff1a; 链式二叉树解决的是非完全二叉树解决不了的问题 什么意思呢&#xff0c;简单的说就是&#xff0c;链式二叉树 可以是下面三种二叉树 但是非链式二叉树只能是前两种 链式二叉树的存储 节点结构&#xff1a;首先定义一个结构体或类来表示二叉树的节…

快速上手 HuggingFace

HuggingFace HuggingFace 是类似于 GitHub 的社区&#xff0c;它主要提供各种的模型的使用&#xff0c;和 github 不同的是&#xff0c;HuggingFace 同时提供了一套框架&#xff0c;进行模型推理&#xff0c;模型训练、和模型库文件的管理等等。本文将介绍&#xff0c;如何快速…

大字体学生出勤记录系统网页源码

源码介绍 上课需要一个个点名记录出勤情况&#xff0c;就借助AI制作了一个网页版学生出勤记录系统&#xff0c; 大字体显示学生姓名和照片&#xff0c;让坐在最后排学生也能看清楚&#xff0c;显示姓名同时会语音播报姓名&#xff0c; 操作很简单&#xff0c;先导入学生姓名…

Golang | Leetcode Golang题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; func numDistinct(s, t string) int {m, n : len(s), len(t)if m < n {return 0}dp : make([][]int, m1)for i : range dp {dp[i] make([]int, n1)dp[i][n] 1}for i : m - 1; i > 0; i-- {for j : n - 1; j > 0; j-- {if s[i] …

C++ | Leetcode C++题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int numDistinct(string s, string t) {int m s.length(), n t.length();if (m < n) {return 0;}vector<vector<unsigned long long>> dp(m 1, vector<unsigned long long>(n 1));for (i…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-19.1讲 串口格式化输出printf

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…