摘要: 题目描述(在洛谷中查看) 已知有两个字串 A,BA,B 及一组字串变换的规则(至多 66 个规则): A_1A1​ -> B_1B1​ A_2A2​ -> B_2B2​ 规则的含义为:在 AA 中的子串 A_1A1​ 可以变换为 B_1B1​ , A_2A2​ 可以变换为 B_2B2​ …。 例如: 阅读全文
posted @ 2018-06-19 22:18 oleolema 阅读(301) 评论(0) 推荐(1) 编辑
摘要: 这里写了关于高精度的加减乘除运算,前面三种都可用我们平时列式子,打草稿的思维写出来,对位相加,对位相减,错位相乘。但是除法就需要注意了,它的商很不好计算,不信的可以自己想一下思路再看下面,具体的除法思路在下面代码的注释中 阅读全文
posted @ 2018-06-14 01:05 oleolema 阅读(343) 评论(0) 推荐(1) 编辑
摘要: 快速排序的核心在与找到驱轴后,根据驱轴大小对数组重新排序,如果是从小到大排序:将小的放在驱轴左边,大的放在驱轴右边,这样完成一轮了。然后第二轮同样的,把驱轴左边数组和右边数组的也进行这样的操作,直到数组只剩下一个值了,那就不用排序了。该选取过程是一个递归过程,每次选取的驱轴其实就是该数排序的位置。经 阅读全文
posted @ 2018-05-30 17:10 oleolema 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 并归排序就是将两个有序数组合成一个有序数组。 所以需要先写一个合并数组的函数merge()来合并两个有序数组。这个函数应该没有问题,但如何得到两个有序数组呢?。。。。仔细想一下,得到两个有序数组的不就是分别对这两个数组归并排序吗?那么数组的数组怎么得到?任然是归并排序,直到数组中只剩下一个值了,就不 阅读全文
posted @ 2018-05-27 21:47 oleolema 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 堆是是具有以下性质的完全二叉树:每个结点都大于或等于它的左右结点(大顶堆),或者每个结点都小于或等于它的左右结点(小顶堆),左右结点之间没有要求。 该算法的主要思想是: 1.假设现在已有一个大顶堆(调用buildheap()函数完成创建)。 2那么它的根结点肯定是最大的,现在将根结点与最后一个结点交 阅读全文
posted @ 2018-05-24 00:09 oleolema 阅读(226) 评论(0) 推荐(0) 编辑
摘要: #include"iostream" #include"queue" using namespace std; int x[1000],z[1000]; struct Tree{ int data; Tree *left,*right; }; void xzCreate(Tree* &t,int xl,int zl,int len){ //xl:先序起始下标,z... 阅读全文
posted @ 2018-05-23 17:36 oleolema 阅读(3478) 评论(0) 推荐(0) 编辑
摘要: #include"iostream" #include"time.h" using namespace std; void show(int *a,int N){ for(int i = 0;i = 0 && temp j,则找到插入点 } a[j + 1] = temp; //将i插入腾出的位置 } } //二分插入... 阅读全文
posted @ 2018-05-22 23:38 oleolema 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 二叉排序树 定义 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树; 查找 若根结点的关键字值等于查找的关键字,成 阅读全文
posted @ 2018-05-20 18:28 oleolema 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://www.dotcpp.com/oj/problem1426.html# 问题 1426: [蓝桥杯][历届试题]九宫重排 时间限制: 1Sec 内存限制: 128MB 提交: 298 解决: 57 源地址:http://www.dotcpp.com/oj/problem1426 阅读全文
posted @ 2018-05-17 15:32 oleolema 阅读(261) 评论(0) 推荐(0) 编辑
摘要: #include"iostream" #include"string.h" using namespace std; //BF算法 int strfind(char *s1,char *s2,int pos){ int len1 = strlen(s1); int len2 = strlen(s2); int i = pos - 1,j = 0; while(j... 阅读全文
posted @ 2018-05-16 21:39 oleolema 阅读(182) 评论(0) 推荐(0) 编辑