随笔分类 -  算法

摘要:1.【问题描述】 100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 题目要求: 从标准输入读入一个正整 阅读全文
posted @ 2018-12-01 20:34 oleolema 阅读(2086) 评论(0) 推荐(0)
摘要:题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低。但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“靶形数独”,作为这两个孩子比试的题目。 靶形数独的方格同普通数独一样,在 99 格宽× 99 格高的大 阅读全文
posted @ 2018-06-23 10:45 oleolema 阅读(275) 评论(0) 推荐(0)
摘要:题目描述 Michael喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子: 1 2 3 4 5 1 阅读全文
posted @ 2018-06-21 00:38 oleolema 阅读(251) 评论(0) 推荐(0)
摘要:题目描述(在洛谷中查看) 已知有两个字串 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 阅读(312) 评论(0) 推荐(1)
摘要:快速排序的核心在与找到驱轴后,根据驱轴大小对数组重新排序,如果是从小到大排序:将小的放在驱轴左边,大的放在驱轴右边,这样完成一轮了。然后第二轮同样的,把驱轴左边数组和右边数组的也进行这样的操作,直到数组只剩下一个值了,那就不用排序了。该选取过程是一个递归过程,每次选取的驱轴其实就是该数排序的位置。经 阅读全文
posted @ 2018-05-30 17:10 oleolema 阅读(160) 评论(0) 推荐(0)
摘要:并归排序就是将两个有序数组合成一个有序数组。 所以需要先写一个合并数组的函数merge()来合并两个有序数组。这个函数应该没有问题,但如何得到两个有序数组呢?。。。。仔细想一下,得到两个有序数组的不就是分别对这两个数组归并排序吗?那么数组的数组怎么得到?任然是归并排序,直到数组中只剩下一个值了,就不 阅读全文
posted @ 2018-05-27 21:47 oleolema 阅读(172) 评论(0) 推荐(0)
摘要:堆是是具有以下性质的完全二叉树:每个结点都大于或等于它的左右结点(大顶堆),或者每个结点都小于或等于它的左右结点(小顶堆),左右结点之间没有要求。 该算法的主要思想是: 1.假设现在已有一个大顶堆(调用buildheap()函数完成创建)。 2那么它的根结点肯定是最大的,现在将根结点与最后一个结点交 阅读全文
posted @ 2018-05-24 00:09 oleolema 阅读(241) 评论(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 阅读(3776) 评论(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 阅读(140) 评论(0) 推荐(0)
摘要:二叉排序树 定义 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树; 查找 若根结点的关键字值等于查找的关键字,成 阅读全文
posted @ 2018-05-20 18:28 oleolema 阅读(251) 评论(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 阅读(272) 评论(0) 推荐(0)
摘要:#include"iostream" #include"stack" using namespace std; typedef char element; class Tree{ private: element data; Tree *right,*left; public: Tree(element data = 0){ this->data = da... 阅读全文
posted @ 2018-05-15 21:11 oleolema 阅读(167) 评论(0) 推荐(0)
摘要:题目描述 有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。 输入 输入包含多组数据,格式如下。 第一行包括两个整数n m,代表城市个数和可以修建的公路个数(n <= 100, 阅读全文
posted @ 2018-05-14 20:38 oleolema 阅读(319) 评论(0) 推荐(0)
摘要:问题描述 某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1~n。现让它们按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢,你可以借助中转站C。在程序中输入车厢数目和出站的特定顺序,如果可以则输出Yes,否者输出No。 样例输入: 5 1 2 3 4 5 5 5 4 1 阅读全文
posted @ 2018-05-13 19:47 oleolema 阅读(752) 评论(0) 推荐(0)
摘要:描述 根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成。 输入 输入的第一行为一 阅读全文
posted @ 2018-05-13 19:46 oleolema 阅读(5109) 评论(0) 推荐(0)
摘要:问题描述 约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。 输入数据 每行是用空格分开的两个整数,第一个是 阅读全文
posted @ 2018-05-13 19:46 oleolema 阅读(357) 评论(0) 推荐(0)
摘要:题目描述 在长度为n(n<1000)的顺序表中可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只能有一个)。 输入 第一行输入表的长度n;第二行依次输入顺序 阅读全文
posted @ 2018-05-13 19:44 oleolema 阅读(302) 评论(0) 推荐(0)
摘要:学会了单向链表,我们又多了一种解决问题的能力,单链表利用一个指针就能在内存中找到下一个位置,这是一个不会轻易断裂的链。但单链表有一个弱点——不能回指。比如在链表中有两个节点A,B,他们的关系是B是A的后继,A指向了B,便能轻易经A找到B,但从B却不能找到A。一个简单的想法便能轻易解决这个问题——建立 阅读全文
posted @ 2018-05-13 19:43 oleolema 阅读(1469) 评论(0) 推荐(0)
摘要:Farey序列是一个这样的序列:其第一级序列定义为(0/1,1/1),这一序列扩展到第二级形成序列(0/1,1/2,1/1),扩展到第三极形成序列(0/1,1/3,1/2,2/3,1/1),扩展到第四级则形成序列(0/1,1/4,1/3,1/2,2/3,3/4,1/1)。以后在每一级n,如果上一级的 阅读全文
posted @ 2018-05-13 19:42 oleolema 阅读(236) 评论(0) 推荐(0)
摘要:问题描述 小鑫的女朋友被魔王抢走了!魔王留给小鑫一张n*m大的表,上面有各种各样的颜色,用A-Z这26个字母来表示。魔王留给他一个任务,如果小鑫可以在这张表中找出任意一个长度大于1的环,并且这个环的颜色是相同的,魔王就把小鑫的女朋友还给他。为了从魔王手中夺回他的女朋友,小鑫请你帮忙,你能帮帮他吗? 阅读全文
posted @ 2018-05-13 17:48 oleolema 阅读(162) 评论(0) 推荐(0)