数据结构
那个村的王富贵
这个作者很懒,什么都没留下…
展开
-
删数问题(贪心算法)
思路:使用贪心算法,首先要明确贪心算法:贪心算法是满足局部最优解,即每一步都是当前最优的,但是结果不一定是最优的。这个题目:意思是,一个很长的数字,删除一些位置上的数之后,使得这个数字最小。使用贪心算法的话可以获得最小的解。思路是这样的:对于数字而言,越往左侧的数字越小,整体就会越小。这里就找到了贪心的条件。例如,12321 --> 删掉3 -->变为当前最小的数。1221,没有比这个小的了。为什么要删掉3,而不是其他的呢?因为要结合贪心的条件:越往左侧的数字越小,整体的数值就会越小.原创 2020-09-09 19:34:32 · 7799 阅读 · 7 评论 -
活动选择(贪心算法基础)
题目如下图所示代码思路很简单,就是将活动按照结束的时间进行排序,然后找不相交的几个时间段,输出即可。这里只是需要注意一点,就是:结束时间一样的活动按照原来的顺序排序,如果使用选择排序的话,由于选择排序是不稳定的排序,需要添加新的条件。#include <iostream>using namespace std;struct node { int Id; int Begin; int End;} activity[110], temp;int main() {原创 2020-09-02 15:58:58 · 591 阅读 · 0 评论 -
7-12 文件传输 (25 分)
其实我想说oj上不少题目的数据不是很完善,就拿有关连通分量的题目来说吧,oj上提交对的代码,交到pta上就有错误。仔细研究一下算法,发现当时没有理解透彻改算法,但是oj给你一个AC,自我感觉良好。真是难受的一批。并查集就是认亲戚(是一种树形结构),将直接或间接有关系的点放到一个集合中去,这时候进行的处理都是对代表进行操作的。所谓的代表就是这个集合的根节点。当两台计算机双向连通的时候,文件是可以...原创 2019-03-21 14:59:11 · 764 阅读 · 0 评论 -
数据结构实验之二叉树二:遍历二叉树
Problem Description已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output每组输入数据对应输出2行:第1行输出中序遍历序列;第2行输出后序遍历序列。 Sample Inputab...原创 2019-03-12 20:38:20 · 323 阅读 · 0 评论 -
数据结构实验之排序六:希尔排序
什么是希尔排序?希尔排序是一种插入排序。将整块按照一定的步长分解成多个子序列。先将这些子序列进行插入排序。然后d=d/2一般的步长是1 2 3 5 9等。Problem Description我们已经学习了各种排序方法,知道在不同的情况下要选择不同的排序算法,以期达到最好的排序效率;对于待排序数据来说,若数据基本有序且记录较少时, 直接插入排序的效率是非常好的,希尔排序就是针对一组基本有...原创 2019-03-17 14:59:00 · 214 阅读 · 0 评论 -
数据结构实验之二叉树四:(先序中序)还原二叉树
Problem Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。Output输出一个整数,即该二叉树的高度。Sample Input9AB...原创 2019-03-20 22:46:17 · 286 阅读 · 0 评论 -
数据结构实验之串一:KMP简单应用
Problem Description给定两个字符串string1和string2,判断string2是否为string1的子串。Input 输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2 (长度小于1000000),string1和string2中保证不出现空格。Output 对于每组输入数据,若string2是s...原创 2019-03-12 15:58:25 · 379 阅读 · 0 评论 -
7-9 旅游规划 (25 分)(驴友计划)
有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;...原创 2019-03-20 21:54:33 · 291 阅读 · 0 评论 -
7-11 悄悄关注 (25 分)
新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N其中N是不超过5000的正整数,每个用户i(i=1, …, N)是被其关注...原创 2019-03-21 15:54:33 · 384 阅读 · 0 评论 -
数据结构实验之求二叉树后序遍历和层次遍历
Problem Description已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层序遍历。Input输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的先序遍历序列,第二个字符串表示二叉树的中序遍历序列。Output每组第一行输出二叉树的后序遍历序列,第二行输出二叉树的层次遍历序列。S...原创 2019-03-13 18:54:05 · 166 阅读 · 0 评论 -
二叉排序树
Problem Description二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 今天我们要判断两序列是否为同一二叉排序树Input开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0...原创 2019-03-13 20:50:09 · 157 阅读 · 0 评论 -
7-13 肿瘤诊断 (30 分)
以前的时候感觉这种题是简单的题型,不过好长时间不做了,有点陌生了。这个题就是简单的三维的bfs,dfs应该也是一种解题思路。反正思路很简单就对了。。。就是暴力搜索,判断一下边界。在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环。给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积。输入格式:输入第一行给出4个正整数:M、N、L、T,其中M和N是每张切片的尺寸(即每张切片是一个M×N的像...原创 2019-03-22 20:07:07 · 712 阅读 · 0 评论 -
折线分割平面
Problem Description我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。Input输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0< n<=10000),表示折线的数量。Output对...原创 2019-05-21 16:03:19 · 325 阅读 · 0 评论 -
数据结构实验之图论十一:AOE网上的关键路径
Problem Description一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图。AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG。与AOV不同,活动都表示在了边上,如下图所示:如上所示,共有11项活动(11条边),9个事件(9个顶点)。整个工程只有一个开始点和一个完成点。即只有一个入度为零的点(源点)...原创 2019-03-20 21:35:54 · 473 阅读 · 0 评论 -
数据结构实验之栈与队列六:下一较大值(二)
Problem Description对于包含n(1&lt;=n&lt;=100000)个整数的序列,对于序列中的每一元素,在序列中查找其位置之后第一个大于它的值,如果找到,输出所找到的值,否则,输出-1。Input 输入有多组,第一行输入t(1&lt;=t&lt;=10),表示输入的组数;以后是 t 组输入:每组先输入n,表示本组序列的元素个数,之后依次输入本组的n个元素。Ou...原创 2019-03-11 14:59:49 · 421 阅读 · 0 评论 -
数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
Problem Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通...原创 2019-03-14 21:19:03 · 157 阅读 · 0 评论 -
数据结构实验之图论二:图的深度遍历
Problem Description请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。Input输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一条...原创 2019-03-14 20:45:40 · 141 阅读 · 0 评论 -
数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
Problem Description给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)Input输入第一行为整数n(0< n <100),表示数据的组数。对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点...原创 2019-03-14 20:24:37 · 159 阅读 · 0 评论 -
树结构练习——判断给定森林中有多少棵树树结构练习——判断给定森林中有多少棵树
Problem Description众人皆知,在编程领域中,C++是一门非常重要的语言,不仅仅因为其强大的功能,还因为它是很多其他面向对象语言的祖先和典范。不过这世上几乎没什么东西是完美的,C++也不例外,多继承结构在带来强大功能的同时也给软件设计和维护带来了很多困难。为此,在java语言中,只允许单继承结构,并采用接口来模拟多继承。KK最近获得了一份java编写的迷你游戏的源代码,他对这份代...原创 2019-03-14 20:04:12 · 169 阅读 · 0 评论 -
数据结构实验之栈与队列二:一般算术表达式转换成后缀式
Problem Description对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。Input输入一个算术表达式,以‘#’字符作为结束标志。Output输出该表达式转换所得到的后缀式。Sample Inputa*b+(c-d/e)*f#Sample Outputab*cde/-f*+思路:(一)、'('这个单独判断。不管栈是不是空栈,也就是说没有限制...原创 2019-03-10 17:24:50 · 760 阅读 · 0 评论 -
数据结构实验之链表三:链表的逆置
Problem Description输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。Input输入多个整数,以-1作为结束标志。Output输出逆置后的单链表数据。Sample Input12 56 4 6 55 15 33 62 -1Sample Output62 33 15 55 6 4 56 12...原创 2019-03-10 14:37:14 · 376 阅读 · 0 评论 -
数据结构实验之栈与队列七:出栈序列判定
Problem Description给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个出栈序列,但4,3,5,1,2就不可能是该序列的出栈序列。假设压入栈的所有数字均不相...原创 2019-03-11 17:06:42 · 425 阅读 · 0 评论 -
数据结构实验之图论三:判断可达性
Problem Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通...原创 2019-03-15 19:02:27 · 164 阅读 · 0 评论 -
数据结构实验之查找五:平方之哈希表
Problem Description给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,…,m-1Input输入包含多组测试数据,到 EOF 结束。每组数据的第1行给出两个正整数N(N <= 500)和P(P >= 2N的最小素数...原创 2019-03-16 18:59:57 · 145 阅读 · 0 评论 -
数据结构实验之图论二:基于邻接表的广度优先搜索遍历(待补充)
Problem Description给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)Input输入第一行为整数n(0< n <100),表示数据的组数。对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点...原创 2019-03-20 13:42:33 · 174 阅读 · 0 评论 -
安装NET Framework 错误代码0x800F081F怎么解决
很强!https://jingyan.baidu.com/article/bad08e1ed21dd709c851211a.html原创 2019-03-16 10:32:49 · 6679 阅读 · 2 评论 -
数据结构实验之查找七:线性之哈希表
Problem Description根据给定的一系列整数关键字和素数p,用除留余数法定义hash函数H(Key)=Key%p,将关键字映射到长度为p的哈希表中,用线性探测法解决冲突。重复关键字放在hash表中的同一位置。Input连续输入多组数据,每组输入数据第一行为两个正整数N(N <= 1500)和p(p >= N的最小素数),N是关键字总数,p是hash表长度,第2行给出...原创 2019-03-15 22:50:13 · 185 阅读 · 0 评论 -
数据结构实验之图论八:欧拉回路
Problem Description在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来。能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学。欧拉通过对七桥问题的研究,不仅圆满地回答了哥尼斯堡七桥问题,并证明了更为广泛的有关一笔画的三条结论,人们通常称之为欧拉定理。对于一个连通图,通常把从某结点出发一笔画成所经过的路线叫做欧拉路。人...原创 2019-03-15 22:17:48 · 158 阅读 · 0 评论 -
数据结构实验之图论十:判断给定图是否存在合法拓扑序列
Problem Description给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。Input输入包含多组,每组格式如下。第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n<=10)后面m行每行两个整数a b,表示从a到b有一条有向边。Output若给定有向图存在合法拓扑序列,则输出YES;否则输出NO。Sample Input1 02 21 2...原创 2019-03-15 21:06:29 · 216 阅读 · 0 评论 -
图结构练习——最短路径
Problem Description给定一个带权无向图,求节点1到节点n的最短路径。Input输入包含多组数据,格式如下。第一行包括两个整数n m,代表节点个数和边的个数。(n<=100)剩下m行每行3个正整数a b c,代表节点a和节点b之间有一条边,权值为c。Output每组输出占一行,仅输出从1到n的最短路径权值。(保证最短路径存在)Sample Input3 2...原创 2019-03-15 20:12:04 · 221 阅读 · 0 评论 -
数据结构实验之图论九:最小生成树
Problem Description有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。Input输入包含多组数据,格式如下。第一行包括两个整数n m,代表城市个数和可以修建的公路个数。(n <= 100, m <=10000)剩下m行每行3个正整数a ...原创 2019-03-15 19:50:59 · 169 阅读 · 0 评论 -
数据结构实验之二叉树六:哈夫曼编码
Problem Description字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,称之为最优编码。哈夫曼编码常被用于数据文件压缩中,其压缩率通常在20%~90%之间。你的任务是对从键盘输入的一个字符串求出它的ASCII编码长度和哈夫曼编码长度的比值。Inp...原创 2019-03-13 21:43:53 · 200 阅读 · 0 评论