- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 生成聚类中心:最大最小距离算法
样本:x0(0 0), x1(3 8), x2(2 2), x3(1 1), x4(5 3), x5(4 8), x6(6 3), x7(5 4), x8(6 4), x9(7 5)一个粗糙的最大最小距离算法代码#include <bits/stdc++.h>using namespace std;const double INF=9999999999999;const int ...
2017-06-24 09:20:55 2331
转载 希尔排序相关
http://www.cnblogs.com/daohuoren/p/6614766.html 塞奇威克(Sedgewick) 的步长序列:1,5,19,41,109,.... 它是通过交织两个序列的元素获得的: 步长序列数组下标 n 从0开始n偶数用 :1,19,109,505,2161,...,9(4 k - 2 k)+ 1,k = 0,1,2,3,... n奇
2017-06-21 08:53:11 301
原创 实验 折半查找算法
掌握折半查找算法的思想及程序实现。代码:#include using namespace std;typedef struct BSearch{ int elem[20];public: void ini(){ for(int i=0;i<20;i++) elem[i]=rand()%91; sort(elem,elem+20);
2017-06-20 16:01:07 1105
原创 实验 排序的有关操作
给出n个学生的考试成绩表,每条信息由姓名和分数组成,试设计一个算法:按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次;按名次列出每个学生的姓名与分数。要求至少使用3种以上的排序方法(必须包含快速排序算法)。代码:#include using namespace std;const int MAXN=8;typedef struct Stu{ in
2017-06-20 15:45:54 1427
原创 实验 哈希表线性探测再散列
将上面的数据利用长度为15的哈希表存储,输出存储后的哈希表。哈希函数采用key%13,用线性探测再散列解决冲突,设计并实现查找运算。代码:#include using namespace std;const int MAXN=15;typedef struct HashList{ int elem[MAXN],mod; HashList(){ for(
2017-06-20 13:49:44 2307
原创 实验 二叉排序树
掌握二叉排序树的查找、插入、删除、建立算法的思想及程序实现。代码:#include using namespace std;typedef struct Node{ Node *ls,*rs; int val;}Node;typedef struct BSTree{ Node *root; BSTree(){root=NULL;}public:
2017-06-20 13:27:26 848
转载 邻接多重表
转自:http://blog.csdn.net/zdp072/article/details/19755675 N 个点 M 条边N 个顶点节点 M 个边节点
2017-06-19 22:28:37 1063
翻译 多叉哈夫曼树的基本计算
百度百科:哈夫曼树也可以是k叉的,只是在构造k叉哈夫曼树时需要先进行一些调整。构造哈夫曼树的思想是每次选k个权重最小的元素来合成一个新的元素,该元素权重为k个元素权重之和。但是当k大于2时,按照这个步骤做下去可能到最后剩下的元素少于k个。解决这个问题的办法是假设已经有了一棵哈夫曼树(且为一棵满k叉树),则可以计算出其叶节点数目为(k-1)nk+1,式子中的nk表示子节点数目为k的节点数目。
2017-06-19 17:58:45 4921 1
原创 HDU 5517 Triple (线段树)
题意: 有二元组(a,b),三元组(c,d,e)。当b == e时它们能构成(a,c,d)。 然后,当不存在(u,v,w)!=(a,b,c)且u>=a,v>=b,w>=c时,则是一个better集合里的元素。 问这个better集合有几个元素思路: 注意到数据范围 对于 N 个二元组(a,b),
2017-06-18 10:50:53 266
原创 HDU 5515 Game of Flying Circus
翻译&题解:http://blog.csdn.net/snowy_smile/article/details/49535301 代码:#include using namespace std;const double eps=1e-8;double t,v1,v2;bool solve(){ double le=0,ri=300,mid; if(v1==v2
2017-06-18 10:46:55 354
原创 HDU 5510 Bazinga (KMP)
题意: 找到最大的i(1≤i≤n),存在一个整数j(1≤j思路: 数据量 500 * 2000 AC自动机 × 只能暴力匹配,但要剪枝 对于大量存在前后覆盖的串的数据,我们可以通过合并可覆盖的串减小数据范围。 例: ab abc
2017-06-18 10:45:13 348
原创 实验 图的基本操作
1、键盘输入数据,建立一个有向图的邻接表。2、输出该邻接表。3、在有向图的邻接表的基础上计算各顶点的度,并输出。4、以有向图的邻接表为基础实现输出它的拓扑排序序列。5、采用邻接表存储实现有向图的深度优先递归遍历。6、采用邻接表存储实现有向图的广度优先遍历(利用队列实现)。7、编写一个主函数,调试上述算法。代码:#include using namespace st
2017-06-13 17:14:16 1522
原创 实验 栈的有关操作
1、用顺序存储定义栈结构。写出这种存储方式下的算法实现,包括:初始化栈、判栈为空、出栈、入栈、求栈顶元素等运算,自己填写主函数。2、利用顺序栈的基本操作,设计算法,实现将任意一个十进制整数转化为R进制整数代码:#include using namespace std;const int MAXN=1e5+10;typedef struct istack{//..........
2017-06-13 13:29:21 539
原创 实验 线性表的有关操作
1、随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。2、遍历单向链表(显示)。3、把单向链表中元素逆置(不允许申请新的结点空间)。4、在单向链表中删除所有的偶数元素(值为偶数)结点。5、编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。6、利用算法5建立两个非递减有序单向链表,然后合并成一个非递增链表。7、利用
2017-06-13 13:28:02 636
原创 实验 队列的有关操作
1、用顺序存储来定义循环队列结构。编程实现,初始化队列、判队列为空、出队列、入队列、求队列头部元素等运算,自己填写主函数。2、利用队列打印杨辉三角形。代码:#include using namespace std;const int MAXN=24;typedef struct Cqueue{ int elem[MAXN]; int head,tail;
2017-06-13 00:15:54 487
原创 实验 二叉树的基本操作
1、 按先序次序输入二叉树中结点的值(一个字符),利用某个特殊字符(例如`@`)表示空树,生成二叉树的二叉链表存储结构。2、 按先、中、后序递归遍历二叉树,之后结合栈的应用,将中序遍历算法改为非递归算法。3、利用二叉树的递归算法求二叉树的高度 。4、利用二叉树的递归算法求二叉树的叶子个数。5、利用队列实现二叉树的层次遍历。代码:#include using namespa
2017-06-13 00:11:54 1287
原创 HDU 5975 Aninteresting game ( lowbit理解 )
题意: 已知对于任意的 X ,将其本身填入集合时,也需要将 [ x - lowbit(x) + 1 , x - 1] 重新填入集合。 给出 X 的最大值 N 和询问次数 K 共有两类询问 1.询问将 [ L , R ] 中所有数逐次填入集合时,一共对每个数字填入了多少次。 2.询
2017-06-08 16:44:17 491 1
原创 HDU 4574 Bombs DFS
题意: 恐怖分子要制作一批炸弹,做出的炸弹的威力是其原料威力的乘积,并且选取时,后选取的原料威力必须大于等于先选的原料。 制作出的炸弹按照其原料威力按字典序排序。 现已知,制作炸弹的原料的威力区间为[l,r],期望得到的炸弹的威力区间为[a,b],求第K的炸弹的威力及原料组成。 输入:
2017-06-02 20:57:02 317
原创 HDU 4572 Bottles Arrangement (找规律)
题意:此题出自2009年IMO中国国家队选拔考试。思路: 考虑到题目要求苛刻,所以如果能构造出可以解释样例的矩阵,我们就能找到其中的规律。 以 5 8 为例 满足题意的矩阵即: 第一列由 1 ... N 顺序构成 每一行按 1 ... N N ... 1顺序构成
2017-06-02 20:48:06 316
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人