
ACM--数据结构
文章平均质量分 71
OPMR
还差的远呢
展开
-
初识单调栈
因为网络赛的一道题,了解到了单调栈其实,自己对数据结构的理解和认识还不是很深,知道的只是皮毛,还是需要刷题。。。单调栈:从栈顶开始单调递增,或单调递减。具体思路:当栈为空或输入数小于栈顶数,进栈;当栈顶不为空并且输入数大于栈顶数,出站在大神博客的启发下,自己简单写了一个下面附上代码:/*递增栈*/#includeusing namespace std;i原创 2016-09-14 12:50:39 · 240 阅读 · 0 评论 -
Huffman Tree ——合并果实
树-堆结构练习——合并果子之哈夫曼树Time Limit: 1000MS Memory Limit: 65536KBProblem Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1原创 2017-01-04 10:07:11 · 312 阅读 · 0 评论 -
二叉搜索(排序)树
二叉搜索树Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5130 Accepted Submission(s): 2295Problem Description判断两序列是否为同一二叉搜索树序列原创 2017-01-06 11:49:53 · 253 阅读 · 0 评论 -
链表应用——二元多项式
二元多项式Time Limit: 1000MS Memory Limit: 65536KBProblem Description 给你多个二元多项式和一个操作符,让你输出操作符操作这些二元多项式之后的结果。Input 首先输入二元多项式的个数n和操作符号(‘+’,‘*’);后面n行输入每一个多项式。多组输入,当n=0的时候结束输入。(nO原创 2017-01-18 16:01:11 · 593 阅读 · 0 评论 -
简单并查集模板
感觉对并查集比较形象的一个举例是《啊哈!算法!》里的点击打开链接并查集的主要功能在于合并+查找,可以把复杂的从属关系变得简单。具体应用有很多,在各大OJ都有题,以后总结下面是最简单的并查集#include #include #include using namespace std;int f[1000];void Init(int n){ int i; for(i=0;原创 2017-03-15 19:37:59 · 292 阅读 · 0 评论 -
hdu1166 敌兵布阵——(线段树模板)
这是一道很水的裸题,之前学了线段树但没掌握离散化,现在拿出来复习一下,进阶离散化等高级应用http://acm.hdu.edu.cn/showproblem.php?pid=1166敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm原创 2017-05-01 12:01:30 · 275 阅读 · 0 评论 -
找女朋友——快排
找女朋友Time Limit: 15MS Memory Limit: 65536KBProblem Description山东理工大学有很多学生,当然也有很多美女,机械实验班的学委(外号:大王八)很想找个女朋友,但他想找个身高和自己相配的女生坐女朋友,现有理工大N个美女的身高数据,但由于N的值较大,为了尽快找到合适的女友,大王八想请你帮他完成这N个美女的身高排序,按降序排列原创 2016-11-09 19:46:49 · 342 阅读 · 0 评论 -
二维树状数组模板
int n,row,col;///矩阵的行数和列数int a[maxn][maxn];int c[maxn][maxn];int lowbit(int x){ return x&(-x);}void modify(int x, int y, int val){ a[x][y] += val; for(int i=x;i<=row;i+=lowbit(i))原创 2017-09-03 19:36:17 · 264 阅读 · 0 评论 -
中缀表达式转换为后缀表达式
该文章转载自:http://blog.youkuaiyun.com/sgbfblog/article/details/8001651在回复中说明不够清晰,在这里说明下,本文第一部分摘自《数据结构和算法分析-C语言描述》一书,只是做了一些概括和总结。一、后缀表达式求值后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6 5转载 2017-12-01 19:32:01 · 831 阅读 · 0 评论 -
数据结构实验之二叉树五:层序遍历
数据结构实验之二叉树五:层序遍历Time Limit: 1000MS Memory Limit: 65536KBProblem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input 输入数据有多行,第一行是一个整数t (t,代表有t行测试数据。每行是一个长度小于原创 2017-01-03 13:15:51 · 267 阅读 · 0 评论 -
二叉树练习——建树+叶子数+深度
数据结构实验之二叉树的建立与遍历Time Limit: 1000MS Memory Limit: 65536KB Problem Description 已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(其中逗号表示空节点)。请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度。Input 输入一个长度小于50个字符的原创 2016-12-28 13:15:36 · 651 阅读 · 0 评论 -
数据结构基础:线性表的应用(1)
题目:实现线性表在顺序存储结构下的插入和删除操作。并用该存储结构实现集合A和集合B的并集和交集操作,要求最终结果存储于集合A当中。应用模型:线性表(数组存储)代码:#include#include#include#includeusing namespace std;typedef struct{ int data[100]; int length;原创 2016-10-19 17:10:46 · 1075 阅读 · 0 评论 -
数据结构基础:单链表的应用(1)
题目:前插法建立一个单链表应用模型:单链表代码:#include#includeusing namespace std;struct List{ int d; List *next;}List;void Insert(List *&h){ for(int i=0;i<n;i++){ cin>>x; L *p;原创 2016-10-19 17:24:32 · 361 阅读 · 0 评论 -
队列——排队买饭(数组模拟法)
题目数据结构实验之队列一:排队买饭Time Limit: 1000MS Memory Limit: 65536KB Problem Description中午买饭的人特多,食堂真是太拥挤了,买个饭费劲,理工大的小孩还是很聪明的,直接奔政通超市,哈哈,确实,政通超市里面也卖饭,有好几种菜,做的比食堂好吃多了,价格也不比食堂贵,并且买菜就送豆浆,吸引了不少童鞋。所以有时吧,人还原创 2016-11-29 20:28:11 · 1086 阅读 · 0 评论 -
bucket sort——桶排序
bucket sortTime Limit: 150MS Memory Limit: 65536KB Problem Description根据人口普查结果,知道目前淄博市大约500万人口,你的任务是帮助人口普查办公室按年龄递增的顺序输出每个年龄有多少人,其中不满1周岁的按0岁计算,1到2周岁的按1岁计算,依次类推,大于等于100岁的老人全部按100岁计算。Input 输入第一原创 2016-11-20 13:29:43 · 245 阅读 · 0 评论 -
数据结构基础:逆波兰式转换
题目:点击打开链接数据结构实验之栈二:一般算术表达式转换成后缀式Time Limit: 1000MS Memory Limit: 65536KBProblem Description对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。Input输入一个算术表达式,以‘#’字符作为结束标志。Output输出该表达式转换所得到的后缀式。Example原创 2016-11-25 22:41:10 · 1398 阅读 · 0 评论 -
字符串Hash的原理与应用
字符串Hash无论是在ACM竞赛中还是在工程中都有着广泛的应用,所以很有必要掌握好它的用法。主要分为两个部分:Hash映射和冲突处理。而本文主要来详细讲解Hash映射的方法及应用,下篇文章将会介绍如何处理冲突。 对于字符串Hash来说都是把字符串映射为一个整数,这一步是通过Hash函数来进行的。常用的Hash函数具体有:SDBMHash,RSHash,JSHash,ELFHash,转载 2016-12-07 18:15:24 · 493 阅读 · 0 评论 -
散列
散列的基本概念散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点。通过散列方法可以对结点进行快速检索。散列(hash,也称“哈希”)是一种重要的存储方式,也是一种常见的检索方法。按转载 2016-11-25 21:53:28 · 351 阅读 · 0 评论 -
雪花匹配——hash表应用
题目下雪啦Time Limit: 2500 MSMemory Limit: 32768 KTotal Submit: 203(39 users)Total Accepted: 38(13 users)Rating:Special Judge: NoDescription陈月亮最喜原创 2016-12-22 14:24:36 · 701 阅读 · 2 评论 -
数据结构实验之查找四:二分查找模板+STL
数据结构实验之查找四:二分查找 Time Limit: 30MS Memory Limit: 65536KBProblem Description在一个给定的无重复元素的递增序列里,查找与给定关键字相同的元素,若存在则输出找到的位置,不存在输出-1。Input一组输入数据,输入数据第一行首先输入两个正整数n ( n < = 10^6 )和m ( m <...原创 2016-12-28 20:44:03 · 299 阅读 · 0 评论