![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深大数据结构
归忆_AC
for dream in szu...会看消息,欢迎交流,若有错误可以私信反馈。
实验报告仅供参考!
github:https://github.com/guiyi886
展开
-
【id:698】【10分】F. 拯救007
在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的最大距离,你需要告诉他是否有可能逃出生天。注意:不会有两条鳄鱼待在同一个点上。其实就是变换坐标系+bfs遍历,列出前后坐标系的点,得到变换坐标系时点(x,y)的变化流程。原创 2023-07-12 02:22:30 · 100 阅读 · 0 评论 -
【id:702】【10分】E. 社交网络图中结点的“重要性”计算
紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的结点能够更快地(平均意义下)到达网络中的其它结点,因而在该网络的传播过程中有更重要的价值。M(≤105)是边的条数。随后的M行中,每行给出一条边的信息,即该边连接的两个结点编号,中间用空格分隔。输入第一行给出两个正整数N和M,其中N(≤104)是图中结点个数,顺便假设结点从1到N编号;给定一个无权的无向图以及其中的一组结点,计算这组结点中每个结点的紧密度中心性。原创 2023-07-12 02:22:39 · 50 阅读 · 0 评论 -
【id:593】【10分】E. 旅游规划
有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额,中间用空格分开,数字均为整数且不超过500。在一行里输出路径的长度和收费总额,数字间以空格分隔,输出结尾不能有多余空格。其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N?D是目的地的城市编号。输入说明:输入数据的第1行给出4个正整数N、M、S、D,原创 2023-07-12 02:22:46 · 122 阅读 · 0 评论 -
【id:141】【15分】E. DS内排—堆排序
根据下图伪代码coding即可,注意图示是大顶堆,题目是小顶堆,图源:b站王道考研。给定一组数据,使用堆排序完成数据的降序排序。每趟交换、筛选后的数据序列,输出格式见样例。数据个数n,n个整数数据。初始创建的小顶堆序列。原创 2023-07-12 02:22:56 · 369 阅读 · 0 评论 -
【id:737】【8分】A. 【程序填空】顺序表类定义
接着每一次操作后,如果操作成功则输出顺序表内容,如果操作失败(包括插入、删除、查找等失败),输出字符串error,不必输出顺序表内容。提示:第i个位置是逻辑意义的位置,从1开始,在实际编程用数组,从0开始,对应数组i-1位置。请完成顺序表类的其他部分填空和主函数,实现题目的输入和输出要求。第1行先输入n表示有n个数据,即n是实际长度;第2行输入要插入的位置和新数据。第3行输入要插入的位置和新数据。第4行输入要删除的位置。第5行输入要删除的位置。第6行输入要查找的位置。第7行输入要查找的位置。原创 2023-07-12 02:23:04 · 52 阅读 · 0 评论 -
【id:30】【8分】C. DS顺序表--合并操作
第1行先输入n表示有n个数据,接着输入n个数据,表示第1个序列,要求数据递增互不等。第2行先输入m表示有m个数据,接着输入m个数据,表示第2个序列,要求数据递增互不等。已知两个递增序列,把两个序列的数据合并到顺序表中,并使得顺序表的数据递增有序。建立顺序表的结构体,属性包括:数组、实际长度、最大长度(设定为1000)顺序表内容包括顺序表的实际长度和数据,数据之间用空格隔开。第1行输出创建后的顺序表内容。原创 2023-07-12 02:23:13 · 75 阅读 · 0 评论 -
【id:714】【8分】E. 德才论
宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。德才分均低于 H,但是德分不低于才分的考生属于“才德兼亡”但尚有“德胜才”者,按总分排序,但排在第二类考生之后;才分不到但德分到线的一类考生属于“德胜才”,也按总分排序,但排在第一类考生之后;随后 M 行,每行按照输入格式输出一位考生的信息,考生按输入中说明的规则从高到低排序。若德分也并列,则按准考证号的升序输出。原创 2023-07-12 02:23:21 · 80 阅读 · 0 评论 -
【id:644】【8分】F. 最长连续递增子序列
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。输入第1行给出正整数n(≤105);第2行给出n个整数,其间以空格分隔。原创 2023-07-12 02:23:30 · 38 阅读 · 0 评论 -
【id:738】【12分】G. 【程序填空】单链表类定义
接着每一次操作后,如果操作成功则输出整个单链表内容,如果操作失败(包括插入、删除、查找等失败),输出字符串error,不必输出表内容。请根据主函数的要求,完成单链表类的其他函数填空。第1行先输入n表示有n个数据,接着输入n个数据。已知带头结点的单链表的类界面和部分函数定义。第2行输入要插入的位置和新数据。第3行输入要插入的位置和新数据。第1行输出创建后的单链表内容。第4行输入要删除的位置。第5行输入要删除的位置。第6行输入要查找的位置。第7行输入要查找的位置。原创 2023-07-12 02:23:39 · 56 阅读 · 0 评论 -
【id:33】【8分】H. DS单链表--结点交换
swap(int pa, int pb) //pa和pb表示两个结点在单链表的位置序号。注意不能简单交换两个结点包含数据,必须通过修改指针来实现两个结点的位置交换。用C++实现含头结点的单链表,然后实现单链表的两个结点交换位置。第二行输出执行第1次交换操作后的单链表数据,数据之间用空格隔开。第三行输出执行第2次交换操作后的单链表数据,数据之间用空格隔开。第一行输出单链表创建后的所有数据,数据之间用空格隔开。第2行输入要交换的两个结点位置。第3行输入要交换的两个结点位置。提示:注意要用链表实现哦!原创 2023-07-11 18:32:09 · 152 阅读 · 0 评论 -
【id:34】【8分】I. DS单链表--合并
假定两个单链表是递增有序,定义并实现以下函数,完成两个单链表的合并,继续保持递增有序。第1行先输入n表示有n个数据,接着输入n个数据。第2行先输入m表示有M个数据,接着输入m个数据。输出合并后的单链表数据,数据之间用空格隔开。原创 2023-07-11 18:30:34 · 197 阅读 · 0 评论 -
【id:42】【8分】K. DS单链表—删除重复元素
给定n个整数,按输入顺序建立单链表,删除其中的重复数字,输出结果链表。(要求不可以构建新结点,不可以定义新链表。对每组测试数据,输出删除重复数字后的结果链表表长和每个元素,具体格式见样例。n(表示有n个整数),后跟n个数字。原创 2023-07-11 18:28:44 · 72 阅读 · 0 评论 -
【id:43】【8分】L. DS双向链表—祖玛
祖玛是一款曾经风靡全球的游戏,其玩法是:在一条轨道上初始排列着若干个彩色珠子,其中任意三个相邻的珠子不会完全同色。若插入前共有m颗珠子,位置0-m-1,则k ∈ [0, m]表示新珠子嵌入在轨道上的位置。给定轨道上初始的珠子序列,然后是玩家所做的一系列操作。你的任务是,在各次操作之后及时计算出新的珠子序列。第一行是一个由大写字母'A'~'Z'组成的字符串,表示轨道上初始的珠子序列,不同的字母表示不同的颜色。输出共n行,依次给出各次操作(及可能随即发生的消除现象)之后轨道上的珠子序列。原创 2023-07-11 18:25:17 · 235 阅读 · 0 评论 -
【id:35】【8分】J. DS线性表—多项式相加
pnxn,每个项都有系数和指数两部分,例如p2x2的系数为p2,指数为2。对于每1组数据,先用两行输出两个原来的多项式,再用一行输出运算结果,不必考虑结果全为0的情况。例如5+x+2x2+3x3,-5-x+6x2+4x4,两者相加结果:8x2+3x3+4x4。其中系数5和-5都是x的0次方的系数,相加后为0,所以不显示。3.如果指数不为0,则用符号^表示,例如x的3次方,表示为x^3。4.多项式的每个项之间用符号+连接,每个+两边加1个空格隔开。第2行:输入n表示有第1组的第1个多项式包含n个项。原创 2023-07-11 18:23:37 · 64 阅读 · 0 评论 -
【id:55】【9分】B. DS堆栈--行编辑
使用C++的STL堆栈对象,编写程序实现行编辑功能。行编辑功能是:当输入#字符,则执行退格操作;如果无字符可退就不操作,不会报错。每行输出最终处理后的结果,如果一行输入的字符串经过处理后没有字符输出,则直接输出NULL。本程序默认不会显示#字符,所以连续输入多个#表示连续执行多次退格操作。注意:必须使用堆栈实现,而且结果必须是正序输出。第一行输入一个整数t,表示有t行字符串要输入。每输入一行字符打回车则表示字符串结束。第二行起输入一行字符串,共输入t行。原创 2023-07-11 18:21:38 · 95 阅读 · 0 评论 -
【id:56】【9分】C. DS堆栈--括号匹配
从上例可以看出第1和第2个括号匹配,第3和第10个括号匹配,4和5匹配,6和9匹配,7和8匹配,11和12匹配。处理表达式过程中需要对括号匹配进行检验,括号匹配包括三种:“(”和“)”,“[”和“]”,“{”和“}”。//判断堆栈是否空:s.empty(),如果为空则函数返回true,如果不空则返回false。2、 当接受第1个右括号,则和最新进栈的左括号进行匹配,表示嵌套中1组括号已经匹配消除。对于每一行的表达式,检查括号是否匹配,匹配则输入ok,不匹配则输出error。A.如果匹配,弹出栈顶元素。原创 2023-07-11 18:19:04 · 89 阅读 · 0 评论 -
【id:54】【8分】D. DS堆栈--迷宫求解
如果迷宫存在路径,将路径中每个方格的x和y坐标输出,从起点到终点,每输出四个方格就换行,最终以单词END结尾,具体格式参考示范数据。给出一个N*N的迷宫矩阵示意图,从起点[0,0]出发,寻找路径到达终点[N-1, N-1]//path是保存路径的堆栈,堆栈中每个元素都包含x坐标和y坐标,用属性xp和yp表示。//path1是一个临时堆栈,把path的数据倒序输出到path1,使得路径按正序输出。第三行起,输入迷宫每一行的每个方格的状态,0表示可通过,1表示不可通过。第二行输入n,表示第一个迷宫有n行n列。原创 2023-07-11 18:14:06 · 238 阅读 · 2 评论 -
【id:739】【8分】F. 【程序填空】表达式计算(栈应用)
因此改成c++代码是两个操作:a = OPND.top();表示把字符#压入堆栈OPTR中,转换成c++代码就是OPTR.push('#');3. a = GetTop(OPND)表示获取栈OPND的栈顶元素,转成c++代码就是: a = OPND.top();因为C++11开始取消atof函数,所以C++要用sscanf函数来实现该转换,参考代码如下。本题需要把一个字符串转成浮点数,例如字符串"1.234"转成浮点数1.234。每行输出一个表达式的计算结果,计算结果用浮点数(含2位小数)的格式表示。原创 2023-07-11 18:09:52 · 49 阅读 · 0 评论 -
【id:60】【9分】H. DS队列+堆栈--数制转换
对于任意十进制数转换为k进制,包括整数部分和小数部分转换。整数部分采用除k求余法,小数部分采用乘k取整法例如x=19.125,求2进制转换。接下来每行包含两个参数n和k,n表示要转换的数值,可能是非整数;k表示要转换的数制,1<k<=16。所以整数部分转为 10011,小数部分转为0.001,合起来为10011.001。对于每一组测试数据,每行输出转换后的结果,结果精度到小数点后3位。提示整数部分可用堆栈,小数部分可用队列实现。原创 2023-07-11 18:02:36 · 76 阅读 · 0 评论 -
【id:61】【9分】I. DS队列--组队列
以此类推输入完t组以定义同组元素之后,开始输入多个操作命令(<200),对空的组队列进行操作,例如输入ENQUEUE 100,表示把元素100插入队列。1、 ENQUEUE,表示当有新的元素进入队列,首先会检索是否有同一组的元素已经存在,如果有,则新元素排在同组的最后,如果没有则插入队列末尾。组队列是队列结构中一种常见的队列结构,在很多地方有着广泛应用。组队列是是指队列内的元素分组聚集在一起。第1行输入一个t(t<=10),表示1个队列中有多少个组。第2行输入一个第1组的元素个数和数值。原创 2023-07-12 02:23:46 · 58 阅读 · 0 评论 -
【id:728】【5分】L. 银行排队问题之单队列多窗口加VIP服务
假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。同时,当轮到某VIP客户出列时,若VIP窗口非空,该客户可以选择空闲的普通窗口;最后一行给出正整数K(≤10)—— 为开设的营业窗口数,以及VIP窗口的编号(从0到K-1)。当该窗口空闲并且队列中有VIP客户在等待时,排在最前面的VIP客户享受该窗口的服务。原创 2023-07-10 00:40:31 · 242 阅读 · 0 评论 -
【id:69】【30分】A. DS串应用--KMP算法
第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0。第二行输入第1个实例的主串,第三行输入第1个实例的模式串。学习KMP算法,给出主串和模式串,求模式串在主串的位置。提示:为什么next值和课本的不一样?第一行输出第1个实例的模式串的next值。第一个输入t,表示有t个实例。原创 2023-07-10 00:36:31 · 79 阅读 · 0 评论 -
【id:72】【20分】B. DS串应用—最长重复子串
求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.原创 2023-07-10 00:34:02 · 112 阅读 · 0 评论 -
【id:73】【10分】E. 子串循环问题 (Ver. I)
如"abca",添加"bc"后构成"abcabc",其由子串"abc"循环构成;也可以添加"abca"后构成"abcaabca",其由子串"abca"循环构成,相比之下"bc"只有2个字符,添加的字符量最少。给定一个字符串,求需要添加至少几个字符到字符串末尾才能使得整个字符串串由某一个不为本身的子串循环构成?第一行包括一个整数T(1原创 2023-07-10 00:28:54 · 112 阅读 · 0 评论 -
【id:101】【10分】A. DS二叉树判断--同一棵二叉树?
二叉树分别以数组存储方式创建、以先序遍历序列创建。输入二叉树的数组存储、先序遍历结果,判断根据它们创建的二叉树是否是同一棵二叉树。对每组测试数据,如果两种方式创建的是同一棵二叉树,输出YES,否则,输出NO。第二行:二叉树的先序遍历结果(英文字母表示树结点,#表示空树)第一行:二叉树的数组存储(英文字母表示树结点,#表示空树)原创 2023-07-10 00:27:51 · 43 阅读 · 0 评论 -
【id:677】【5分】D. 家谱处理
家谱文本文件中,每一行包含一个人的名字。家谱中的其他名字至少缩进2个空格,即他们是家谱中最早祖先(第一行给出的名字)的后代,且如果家谱中一个名字前缩进k个空格,则下一行中名字至多缩进k+2个空格。输入首先给出2个正整数N(2≤N≤100)和M(≤100),其中N为家谱中名字的数量,M为家谱中陈述语句的数量,输入的每行不超过70个字符。在一个家谱中同样的名字不会出现两次,且家谱中没有出现的名字不会出现在陈述语句中。对于测试用例中的每句陈述语句,在一行中输出True,如果陈述为真,或False,如果陈述为假。原创 2023-07-10 00:26:35 · 171 阅读 · 0 评论 -
【id:94】【10分】E. DS二叉树—二叉树镜面反转
假设二叉树用二叉链表存储,用先序序列结果创建。输入二叉树的先序序列,请你先创建二叉树,并对树做个镜面反转,再输出反转后的二叉树的先序遍历、中序遍历、后序遍历和层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。对每棵二叉树,输出镜面反转后的先序、中序、后序和层次遍历序列。如果空树,输出四个NULL(后面不加空格)。程序中不允许使用STL库等第三方对象或函数实现本题的要求。每组测试数据是一个二叉树的先序遍历序列,#表示空树。原创 2023-07-10 00:24:50 · 156 阅读 · 0 评论 -
【id:80】【20分】C. DS二叉树——二叉树之父子结点
给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构。第二行起,按照题目表示的输入方法,输入每个二叉树的先序遍历,连续输入t行。编写程序输出该树的所有叶子结点和它们的父亲结点。第二行输出第1个示例中与叶子相对应的父亲节点。第一行按先序遍历,输出第1个示例的叶子节点。第一行输入一个整数t,表示有t个二叉树。以此类推输出其它示例的结果。原创 2023-07-10 00:22:29 · 281 阅读 · 0 评论 -
【id:89】【10分】D. DS树--二叉树高度
第二行起输入每个二叉树的先序遍历结果,空树用字符‘0’表示,连续输入t行。给出一棵二叉树,求它的高度。二叉树的创建采用前面实验的方法。第一行输入一个整数t,表示有t个二叉树。注意,二叉树的层数是从1开始。每行输出一个二叉树的高度。原创 2023-07-10 00:21:14 · 93 阅读 · 0 评论 -
【id:88】【10分】F. DS树--带权路径和
已知一棵二叉树的叶子权值,该二叉树的带权案路径和APL等于叶子权值乘于根节点到叶子的分支数,然后求总和。如下图中,叶子都用大写字母表示,权值对应为:A-7,B-6,C-2,D-3。第二行输入一棵二叉树的先序遍历结果,空树用字符‘0’表示,注意输入全是英文字母和0,其中大写字母表示叶子。第三行先输入n表示有n个叶子,接着输入n个数据表示n个叶子的权值,权值的顺序和前面输入的大写字母顺序对应。计算一棵二叉树的带权路径总和,即求赫夫曼树的带权路径和。本题二叉树的创建参考前面的方法。输出每一棵二叉树的带权路径和。原创 2023-07-10 00:01:05 · 162 阅读 · 0 评论 -
【id:90】【10分】G. DS树--二叉树之最大路径
二叉树的每个结点都有一个权值,从根结点到每个叶子结点将形成一条路径,每条路径的权值等于路径上所有结点的权值和。如下图所示,共有4个叶子即有4条路径,路径1权值=5 + 4 + 11 + 7 = 27路径2权值=5 + 4 + 11 + 2 = 22。路径3权值=5 + 8 + 13 = 26路径4权值=5 + 8 + 4 + 1 = 18。第三行先输入n表示二叉树的结点数量,然后输入每个结点的权值,权值顺序与前面结点输入顺序对应。每行输出每棵二叉树的最大路径权值,如果最大路径权值有重复,只输出1个。原创 2023-07-09 23:59:35 · 95 阅读 · 0 评论 -
【id:85】【20分】H. DS二叉树--赫夫曼树的构建与编码(含代码框架)
即每行先输出1个权值,再输出一个短划线,再输出对应编码,接着下一行输入下一个权值和编码。第二行先输入n,表示第1个实例有n个权值,接着输入n个权值,权值全是小于1万的正整数。给定n个权值,根据这些权值构造huffman树,并进行huffman编码。要求:赫夫曼的构建中,默认左孩子权值不大于右孩子权值。逐行输出每个权值对应的编码,格式如下:权值-编码。大家以课本算法为主,注意数组访问是从位置1开始。以下代码框架仅供参考,不强制一定按照下面框架。第一行输入t,表示有t个测试实例。原创 2023-07-09 23:58:29 · 363 阅读 · 0 评论 -
领接矩阵dfs和bfs(c++代码)
【代码】领接矩阵dfs和bfs(c++代码)原创 2023-07-09 23:56:35 · 47 阅读 · 0 评论 -
【id:108】【20分】C. 图综合练习--构建邻接表
邻接表包含数组和单链表两种数据结构,其中每个数组元素也是单链表的头结点,数组元素包含两个属性,属性一是顶点编号info,属性二是指针域next指向与它相连的顶点信息。输出每个图的邻接表,每行输出格式:数组下标 顶点编号-连接顶点下标-......-^,数组下标从0开始。单链表的每个结点也包含两个属性,属性一是顶点在数组的位置下标,属性二是指针域next指向下一个结点。第2行输入n和k,表示该图有n个顶点和k条弧。第4行起输入k条弧的起点和终点,连续输入k行。第1行输入整数t,表示有t个图。原创 2023-07-09 23:54:56 · 409 阅读 · 0 评论 -
【id:109】【10分】D. DS图—图的邻接矩阵存储及度计算
输入图的顶点信息和边信息,完成邻接矩阵的设置,并计算各顶点的入度、出度和度,并输出图中的孤立点(度为0的顶点)若使用C++只能include一个头文件iostream;按顶点信息输出各顶点的度(无向图)或各顶点的出度 入度 度(有向图)。孤立点的度信息不输出。程序中若include多过一个头文件,不看代码,作0分处理。每行一条边(顶点1 顶点2)或弧(弧尾 弧头)信息。图类型 顶点数 (D—有向图,U—无向图)若没有孤立点,不输出任何信息。不允许使用第三方对象或函数实现本题的要求。原创 2023-07-09 23:53:29 · 251 阅读 · 0 评论 -
【id:112】【10分】F. DS图—图非0面积
编程计算由"1"围成的下列图形的面积。面积计算方法是统计"1"所围成的闭合曲线中"0"点的数目。如图所示,在10*10的二维数组中,"1"围住了15个点,因此面积为15。对每个二维数组,输出符号"1"围住的"0"的个数,即围成的面积。假设一定有1组成的闭合曲线,但不唯一。一个由0和1组成的m*n的二维数组。原创 2023-07-09 23:51:44 · 238 阅读 · 0 评论 -
【id:115】【20分】A. DS图—图的连通分量
输入无向图顶点信息和边信息,创建图的邻接矩阵存储结构,计算图的连通分量个数。输出图的连通分量个数,具体输出格式见样例。每组测试数据输出,顶点信息和邻接矩阵信息。第三行开始,每行一条边信息。第一行:顶点数 顶点信息。每组输出直接用空行分隔。原创 2023-07-09 23:48:13 · 322 阅读 · 0 评论 -
【id:747】【20分】B. 村村通工程(Kruskal算法)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。该工程是指中国力争在5年时间实现所有村庄通沥青路或水泥路,以打破农村经济发展的交通瓶颈,解决9亿农民的出行难题。村村通公路工程,是国家为构建和谐社会,支持新农村建设的一项重大举措,是一项民心工程。"村村通"是国家一个系统工程,其包涵有:公路、电力、生活和饮用水、电话网、有线电视网、互联网等等。接着m行:m条边信息,格式为:顶点1 顶点2 权值。第1行:输出最小生成树的权值之和。原创 2023-07-09 23:46:32 · 208 阅读 · 0 评论 -
【id:746】【20分】C. 村村通工程(Prim算法)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。该工程是指中国力争在5年时间实现所有村庄通沥青路或水泥路,以打破农村经济发展的交通瓶颈,解决9亿农民的出行难题。村村通公路工程,是国家为构建和谐社会,支持新农村建设的一项重大举措,是一项民心工程。"村村通"是国家一个系统工程,其包涵有:公路、电力、生活和饮用水、电话网、有线电视网、互联网等等。接着m行:m条边信息,格式为:顶点1 顶点2 权值。第1行:输出最小生成树的权值之和。原创 2023-07-09 23:46:30 · 262 阅读 · 0 评论 -
【id:114】【15分】D. 货币套汇(图路径)
对于每个测试用例,首先读取货币的个数n和兑换率的个数m。最后,调用floyd函数计算最短路径,如果存在套利机会(即存在一条路径使得货币兑换值大于1),则输出"YES",否则输出"NO"。给定n种货币c1 ,c2 ,... ,cn的有关兑换率,试设计一个有效算法,确定货币间是否存在套汇的可能性。n+2~n+m+1行,每行有3 个数据项ci,rij 和cj ,表示货币ci 和cj的兑换率为 rij。第一行:正整数n (1< =n< =30),正整数m,分别表示n种货币和m种不同的货币兑换率。原创 2023-07-08 19:15:46 · 423 阅读 · 1 评论