
数据结构
qq_51780315
这个作者很懒,什么都没留下…
展开
-
完全二叉树的权值
完全二叉树的权值给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 A1,A2,⋅⋅⋅AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是 1。输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,⋅⋅⋅AN。输出格式输出一个整数代表答案。数据范围1≤N≤105,−105≤Ai≤105输入样例:71 6 5原创 2022-01-16 19:04:51 · 284 阅读 · 0 评论 -
插入排序还是归并排序
插入排序还是归并排序根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法?输入格式:输入在第一行给出正整数 N (≤100);随后一行给出原始原创 2021-12-02 19:39:30 · 392 阅读 · 3 评论 -
7-3 点赞狂魔
点赞狂魔微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。输入格式:输入在第一行给出一个正整数N(≤100),是待统计的用户数。随后N行,每行列出一位用户的点赞标签。格式为“Name K F 1 ⋯F原创 2021-11-28 10:24:55 · 828 阅读 · 0 评论 -
7-8 快速排序 输出每一趟
快速排序给定一个整数序列,请按非递减序输出采用快速排序(递归法)的各趟排序后的结果。注意:每趟排序以排序区间的首元素为枢轴(支点)。输入格式:测试数据有多组,处理到文件尾。每组测试数据第一行输入一个整数n(1≤n≤100),第二行输入n个整数。输出格式:对于每组测试,输出若干行,每行是一趟排序后的结果,每行的每两个数据之间留一个空格。输入样例:48 7 2 1输出样例:1 7 2 81 7 2 81 2 7 8#include<iostream>#include<原创 2021-11-28 08:52:50 · 9139 阅读 · 0 评论 -
7-8 中序遍历树并判断是否为二叉搜索树
中序遍历树并判断是否为二叉搜索树对给定的有N个节点(N>=0)的二叉树,给出中序遍历序列,并判断是否为二叉搜索树。题目保证二叉树不超过200个节点,节点数值在整型int范围内且各不相同。输入格式:第一行是一个非负整数N,表示有N个节点第二行是一个整数k,是树根的元素值接下来有N-1行,每行是一个新节点,格式为 r d e 三个整数,r表示该节点的父节点元素值(保证父节点存在);d是方向,0表示该节点为父节点的左儿子,1表示右儿子;e是该节点的元素值输出格式:首先输出二叉树的中序遍历序原创 2021-11-27 10:45:47 · 2767 阅读 · 2 评论 -
7-3 词频统计
7-3 词频统计请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。所谓“单词”,是指由不超过80个单词字符组成的连续字符串,但长度超过15的单词将只截取保留前15个单词字符。而合法的 “单词字符”为大小写字母、数字和下划线,其它字符均认为是单词分隔符。输入格式:输入给出一段非空文本,最后以符号#结尾。输入保证存在至少10个不同的单词。输出格式:在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写,例如 “PAT”和“pat”被认为是同一个单词。原创 2021-11-26 21:05:11 · 2278 阅读 · 2 评论 -
7-5 悄悄关注
悄悄关注新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N其中N是不超过5000的正整数,每个用户i(i=1, …, N)是被其关注的用户的ID,是长度为4位的由数字和英文字母组成的字符串,各项间以空格分隔。之后给出该用户点赞的信息原创 2021-11-25 19:07:09 · 272 阅读 · 0 评论 -
7-5 逆序对
逆序对给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。输入格式:第一行包含整数n,表示数列的长度;第二行包含 n 个整数,表示整个数列。(1≤n≤100000)输出格式:输出一个整数,表示逆序对的个数。输入样例:62 3 4 5 6 1输出样例:5#include<iostream>#include<c原创 2021-11-24 18:17:40 · 342 阅读 · 2 评论 -
7-7 词典 (15 分)
词典你刚从滑铁卢搬到了一个大城市,这里的人们讲一种难以理解的外语方言。幸运的是,你有一本字典来帮助你理解它们。输入格式:输入第一行是正整数N和M,后面是N行字典条目(最多10000条),然后是M行要翻译的外语单词(最多10000个)。每一个字典条目都包含一个英语单词,后面跟着一个空格和一个外语单词。 输入中的每个单词都由最多10个小写字母组成。输出格式:输出翻译后的英文单词,每行一个单词。非词典中的外来词汇输出“eh”。输入样例:5 3dog ogdaycat atcaypig igp原创 2021-11-23 18:33:40 · 1474 阅读 · 0 评论 -
集合相似度
7-4 集合相似度 (25 分)给定两个整数集合,它们的相似度定义为:N c /N t×100%。其中N c是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式:输入第一行给出一个正整数N(≤50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(≤104 ),是集合中元素的个数;然后跟M个[0,109 ]区间内的整数。之后一行给出一个正整数K(≤2000),随后K行,每行对应一对需要计算相似度的集合的编号原创 2021-11-21 19:36:56 · 854 阅读 · 3 评论 -
拓扑排序 关键路
顺手牵的老师课件hh原创 2021-11-18 15:40:28 · 447 阅读 · 0 评论 -
7-7 最短工期
最短工期一个项目由若干个任务组成,任务之间有先后依赖顺序。项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务。现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工时间。输入格式:首先第一行给出两个正整数:项目里程碑的数量 N(≤100)和任务总数 M。这里的里程碑从 0 到 N−1 编号。随后 M 行,每行给出一项任务的描述,格式为“任务起始里程碑 任务结束里程碑 工作时长”,三个数字均为非负整数,以空格分隔。输出格式:如果整个项目的安排是合理可行的,原创 2021-11-16 19:54:15 · 857 阅读 · 1 评论 -
任务调度的合理性
7-5 任务调度的合理性 (25 分)假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如C程序设计和数据结构两门课,必须先学习前者。但是需要注意的是,对一原创 2021-11-15 20:17:04 · 358 阅读 · 1 评论 -
公路村村通
公路村村通现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 31 4原创 2021-11-09 06:30:00 · 329 阅读 · 0 评论 -
邻接表创建无向图
邻接表创建无向图采用邻接表创建无向图G ,依次输出各顶点的度。输入格式:输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数。 输入第二行为顶点的信息,每个顶点只能用一个字符表示。 依次输入j行,每行输入一条边依附的顶点。输出格式:依次输出各顶点的度,行末没有最后的空格。输入样例:5 7ABCDEABADBCBECDCEDE输出样例:2 3 3 3 3邻接表法#include<iostream>#include&原创 2021-11-06 21:33:20 · 876 阅读 · 1 评论 -
邻接矩阵表示法创建无向图
邻接矩阵表示法创建无向图采用邻接矩阵表示法创建无向图G ,依次输出各顶点的度。输入格式:输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数。 输入第二行为顶点的信息,每个顶点只能用一个字符表示。 依次输入j行,每行输入一条边依附的顶点。输出格式:依次输出各顶点的度,行末没有最后的空格。输入样例:5 7ABCDEABADBCBECDCEDE输出样例:2 3 3 3 3零阶矩阵法#include<iostream>原创 2021-11-06 21:17:42 · 3782 阅读 · 0 评论 -
7-8路径判断
路径判断给定一个有N个顶点和E条边的无向图,请判断给定的两个顶点之间是否有路径存在。 假设顶点从0到N−1编号。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。最后一行给出两个顶点编号i,j(0≤i,j<N),i和j之间用空格分隔。输出格式:如果i和j之间存在路径,则输出"There is a path between i and j.",否则输出"There is no path原创 2021-11-06 16:36:38 · 1472 阅读 · 0 评论 -
Dijkstra算法(模板)
Dijkstra算法(模板)给一个n(1 ≤ n ≤ 2500) 个点 m(1 ≤ m ≤ 6200) 条边的无向图,求 s 到 t 的最短路。输入格式:第一行四个由空格隔开的整数 n、m、s、t。之后的 m 行,每行三个正整数 s 、t 、w (1≤w ≤1e9),表示一条从s 到 t 长度为 w 的边。输出格式:一个整数,表示从s 到t 的最短路径长度。数据保证至少存在一条道路。输入样例:7 11 5 42 4 21 4 37 2 23 4 35 7 57 3 3原创 2021-11-03 18:42:35 · 1014 阅读 · 2 评论 -
pta好中缀
好中缀我们称一个字符串S的子串T为好中缀,如果T是去除S中满足如下条件的两个子串p和q后剩余的字符串。(1)p是S的前缀,q是S的后缀;(2)p=q;(3)p和q是满足条件(1)(2)的所有子串中的第二长者。注意一个字符串不能称为自己的前缀或后缀。好中缀至少为空串,其长度大于等于0,不能为负数。输入格式:输入为一个字符串S,包含不超过100000个字母。输出格式:输出为一个整数,表示好中缀的长度。输入样例1:abcabcxxxabcabc输出样例1:9输入样例2:xa原创 2021-11-01 20:50:59 · 644 阅读 · 0 评论