- 博客(28)
- 收藏
- 关注
原创 kmp算法
Problem Description 给定两个字符串string1和string2,判断string2是否为string1的子串。 Input 输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2(长度小于1000000),string1和string2中保证不出现空格。 Output 对于每组输入数据,若str
2018-01-25 00:36:25
362
转载 Linux 下automake的用法
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用 autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序
2018-01-08 11:50:12
401
转载 linux chmod命令用法
chmod----改变一个或多个文件的存取模式(mode) chmod [options] mode files 只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。 options:
2018-01-08 11:25:13
185
原创 C++复数类的运算符重载
Problem Description 通过本题目的练习可以掌握成员运算符重载及友元运算符重载 要求定义一个复数类,重载加法和减法运算符以适应对复数运算的要求,重载插入运算符(以方便输出一个复数的要求。 Input 要求在主函数中创建对象时初始化对象的值。 Output 输出数据共有4行,分别代表a,b的值和它们求和、求差后的值 Example Input
2017-12-27 00:07:25
841
原创 数据结构实验之查找三:树的种类统计
Problem Description 随着卫星成像技术的应用,自然资源研究机构可以识别每一个棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。 Input 输入一组测试数据。数据的第1行给出一个正整数N (n Output 按字典序输出各种树的种类名称和它占的百分比,中间以空格间隔,小数点后保留两位小数。 Example Inpu
2017-12-24 12:33:40
153
原创 数据结构实验之排序五:归并求逆序数
Submit Statistic Problem Description 对于数列a1,a2,a3…中的任意两个数ai,aj (i aj,那么我们就说这两个数构成了一个逆序对;在一个数列中逆序对的总数称之为逆序数,如数列 1 6 3 7 2 4 9中,(6,4)是一个逆序对,同样还有(3,2),(7,4),(6,2),(6,3)等等,你的任务是对给定的数列求出数列的逆序数。
2017-12-24 02:01:50
99
原创 数据结构实验之排序四:寻找大富翁
Problem Description 2015胡润全球财富榜调查显示,个人资产在1000万以上的高净值人群达到200万人,假设给出N个人的个人资产值,请你快速找出排前M位的大富翁。 Input 首先输入两个正整数N( N ≤ 10^6)和M(M ≤ 10),其中N为总人数,M为需要找出的大富翁数目,接下来给出N个人的个人资产,以万元为单位,个人资产数字为正整数,数字间以空格分隔
2017-12-24 00:55:25
107
原创 冒泡排序
#include using namespace std; int a[100001], n, i, j; int main() { while(cin >> n) { for(i = 0; i < n; i++) { cin >> a[i]; } for(i = 0; i < n; i++)
2017-12-23 12:05:55
119
原创 数据结构实验之排序二:交换排序
Problem Description 冒泡排序和快速排序都是基于"交换"进行的排序方法,你的任务是对题目给定的N个(长整型范围内的)整数从小到大排序,输出用冒泡和快排对这N个数排序分别需要进行的数据交换次数。 Input 连续多组输入数据,每组数据第一行给出正整数N(N ≤ 10^5),随后给出N个整数,数字间以空格分隔。 Output 输出数据占一行,代表冒泡排序
2017-12-23 11:54:03
121
原创 快速排序
Problem Description 给定N(N≤10^5)个整数,要求用快速排序对数据进行升序排列,注意不得使用STL。 Input 连续输入多组数据,每组输入数据第一行给出正整数N(≤10^5),随后给出N个整数,数字间以空格分隔。 Output 输出排序后的结果,数字间以一个空格间隔,行末不得有多余空格。 Example Input 8 49 38
2017-12-23 11:07:51
110
原创 数据结构实验之查找七:线性之哈希表
Problem Description 根据给定的一系列整数关键字和素数p,用除留余数法定义hash函数H(Key)=Key%p,将关键字映射到长度为p的哈希表中,用线性探测法解决冲突。重复关键字放在hash表中的同一位置。 Input 连续输入多组数据,每组输入数据第一行为两个正整数N(N = N的最小素数),N是关键字总数,p是hash表长度,第2行给出N个正整数关键字,数字
2017-12-23 01:10:59
137
原创 数据结构实验之查找四:二分查找
Submit Statistic Problem Description 在一个给定的无重复元素的递增序列里,查找与给定关键字相同的元素,若存在则输出找到的位置,不存在输出-1。 Input 一组输入数据,输入数据第一行首先输入两个正整数n ( n 随后m行输入m个待查找的关键字key Output 若在给定的序列中能够找到与关键字key相等的元素,则输
2017-12-19 09:28:08
110
原创 数据结构实验之查找二:平衡二叉树
Problem Description 根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。 Input 输入一组测试数据。数据的第1行给出一个正整数N(n Output 输出平衡二叉树的树根。 Example Input 5 88 70 61 96 120 Example Output 70 code: #incl
2017-12-18 21:59:04
157
原创 数据结构实验之查找一:二叉排序树
Submit Statistic Problem Description 对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。 Input 输入包含若干组测试数据。每组
2017-12-18 19:38:47
156
原创 数据结构实验之二叉树六:哈夫曼编码
Problem Description 字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,称之为最优编码。哈夫曼编码常被用于数据文件压缩中,其压缩率通常在20%~90%之间。你的任务是对从键盘输入的一个字符串求出它的ASCII编码长度和哈夫曼编码长度的比值。
2017-12-14 23:10:32
188
原创 先序中序还原二叉树 和 中序后序还原二叉树 总结
遍历二叉树有三种方法 ①先序:先遍历根结点,后遍历左子树,最后遍历右子树 ②中序:先遍历左子树,后遍历根结点,最后遍历右子树 ③后序:先遍历左子树,后遍历右子树,最后遍历根结点 先序中序还原二叉树: 给出的先序遍历的结点序列第一个结点肯定是二叉树的根结点,在中序遍历序列中找到该结点,然后对左子树和右子树进行相同的递归函数调用。 左子树:中序序列取根结点右半边序列,设右半边长为n
2017-12-14 21:42:07
2554
原创 数据结构实验之二叉树八:(中序后序)求二叉树的深度
Problem Description 已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。 Input 输入数据有多组,输入T,代表有T组数据。每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历。 Output 输出二叉树的深度。 Example Input 2 dbgeafc dgebfca ln
2017-12-14 21:32:38
154
原创 数据结构实验之二叉树五:层序遍历
Problem Description 已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。 Input 输入数据有多行,第一行是一个整数t (t,代表有t行测试数据。每行是一个长度小于50个字符的字符串。 Output 输出二叉树的层次遍历序列。 Example Input 2 abd,,e
2017-12-14 20:57:42
137
原创 数据结构实验之二叉树七:叶子问题
Problem Description 已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。 Input 输入数据有多行,每一行是一个长度小于50个字符的字符串。 Output 按从上到下从左到右的顺序输出二叉树的叶子结点。 Example Input abd,,
2017-12-14 20:55:59
117
原创 数据结构实验之二叉树四:(先序中序)还原二叉树
Problem Description 给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。 Input 输入数据有多组,每组数据第一行输入1个正整数N(1 Output 输出一个整数,即该二叉树的高度。 Example Input 9 ABDFGHIEC FDHGIBEAC Example Output 5 通过先序
2017-12-14 19:27:39
600
原创 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
Problem Description 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。 Input 输入包含多组,每组格式如下。 第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n 后面m行每行两个整数a b,表示从a到b有一条有向边。 Output 若给定有向图存在合法拓扑序列,则输出YES;否则输出NO。 Exam
2017-12-12 09:33:24
107
原创 数据结构实验之图论八:欧拉回路
Problem Description 在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来。 能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学。欧拉通过对七桥问题的研究,不仅圆满地回答了哥尼斯堡七桥问题,并证明了更为广泛的有关一笔画的三条结论,人们通常称之为欧拉定理。对于一个连通图,通常把从某结点出发一笔画成所经过的
2017-12-07 13:32:53
106
原创 数据结构实验之图论六:村村通公路
Problem Description 当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各个村落之间的原始道路统计数据表,表中列出了各村之间可以建设公路的若干条道路的成本,你的任务是根据给出的数据表,求使得每个村都有公路连通所需要的最低成本。 Input 连续多组数据输入,每组数据包括村落数目N(N Output 输出使每个村庄都有公路连通所需要的最低
2017-12-07 13:11:27
169
原创 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
Problem Description 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口
2017-12-03 12:52:42
200
原创 数据结构实验之图论四:迷宫探索
Problem Description 有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点? Input 连续T组数据输入,每组数据第一行给出三个正整数,分别表示地下迷宫的结点数N(1 Output 若可以点亮所有结点的灯,则输出从S开始并以S结束的序列,序列中相邻的顶点
2017-12-03 10:49:00
131
原创 图的广度优先搜索
利用邻接矩阵的思想解决广度优先搜索问题。 例如一无向图的邻接矩阵如下所示 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 从哪一个顶点开始遍历就从哪一行开始,这一行里值为1的列值依次遍历输出,全部输出完之后,利用递归的思想依次对输出
2017-11-22 21:20:25
232
原创 图的深度优先遍历
Problem Description 请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。‘ Input 输入第一行为整数n(0 Output 输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示DFS的遍历结果。 Example Input 1 4 4 0 1 0 2 0 3 2 3 Examp
2017-11-22 20:25:17
433
原创 一般算数表达式转换成后缀式问题
计算机可以计算无比庞大的数据,但是它是没有思想的,也就是说不能用人类们的通用方法来编译问题。比如简单的加减乘除问题,人类可以看懂一般的式子顺序,明白计算的先后顺序,先乘除,后加减,从左算到右,括号内优先计算,但机器是呆板的,这就要求我们要想一种方法,把式子转换成机器语言。 表达式求值是程序语言编译中的一个最基本的问题。它的实现是栈应用的一个典型的例子。 一般的有后缀式,前缀式两种(中缀
2017-10-19 21:44:36
699
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人