数据结构
文章平均质量分 71
iot_xiaohe
这个作者很懒,什么都没留下…
展开
-
hdu 4217 线段树
http://acm.hdu.edu.cn/showproblem.php?pid=4217题目大意: t 组测试,每组测试有 n 个数(1~n),有 k 次循环,每次取出第k小的数,求所有取出的数字之和。#include#include#include#include#include#define SIZE 262145using namespace std;int原创 2013-05-14 09:36:35 · 790 阅读 · 0 评论 -
hdu 1247(字典树)
http://acm.hdu.edu.cn/showproblem.php?pid=1247/*注意结点数字的意义刚开始还是用结点数字记录当前前缀出现的次数,结构一直出错,而找到下边例子后才发现问题。特殊例子asdasd应该没有输出结果,但却输出了asdwhy?*/题目大意:按字典序给出一些单词(不超过50000个),将那些由其它两个单词组合成的单词原创 2012-11-19 17:50:02 · 488 阅读 · 0 评论 -
poj 2418 二叉查找树
http://poj.org/problem?id=2418/*二叉查找树:对于树中的每个节点X,它的左子树中的所有节点的值小于X的值,它的右子树中的所有节点的值大于X的值;*/题目大意:给出一些单词(包含大小写和空格),单词可以重复出现(单词最多10000种,最多1000000个)。要求按字典序输出单词并输出每个单词占的比例;思路:单词的比较可以用strcmp,由于单词数较多原创 2013-04-26 08:43:23 · 1095 阅读 · 1 评论 -
hdu 1305 字典树
http://acm.hdu.edu.cn/showproblem.php?pid=1305题目大意:给出几组只包含0和1的字符串,对于每组字符串,判断是否有一些串是另一些串的前缀;思路:将一组中的每个字符串依次加入字典树。1.若加入某串过程中若遇到了叶子节点,则说明存在当前串的字串;(判断叶子节点的方法见注释)2.若加入某串过程中始终没有添加新节点,则说明当前串是其他串的字串;原创 2013-04-23 20:31:10 · 776 阅读 · 0 评论 -
hdu 3791 二叉查找树
http://acm.hdu.edu.cn/showproblem.php?pid=3791 /*二叉查找树:对于树中的每个节点X,它的左子树中的所有节点的值小于X的值,它的右子树中的所有节点的值大于X的值;*/题目大意:给出一个二叉查找树序列,判断随后的n个序列和该序列是不是构成同一棵二叉查找树。思路1:分别建立需要比较的两个序列的二叉查找树,然后遍历第一棵树,同时判断第二棵原创 2013-04-25 11:30:01 · 949 阅读 · 0 评论 -
hdu 1710 二叉树遍历
http://acm.hdu.edu.cn/showproblem.php?pid=1710/*二叉树的遍历:先序遍历(preorder traversal):先遍历父节点,然后是左孩子,右孩子。中序遍历(inorder traversal):先遍历左孩子,然后是父节点,最后遍历右孩子。后序遍历(postorder traversal):先遍历左孩子和右孩子,然后遍历父节点。原创 2013-04-25 07:48:15 · 1018 阅读 · 0 评论 -
hdu 2222 AC自动机
http://acm.hdu.edu.cn/showproblem.php?pid=2222/*一道AC自动机模板题,超时次数20+,改了半天终于AC了,代码中标记了从TLE到AC过程修改的关键一步,看样子应该是数组作为函数参数传递时的细节问题,不过还是不明白,如有那位大神明白个中缘由,还望不吝赐教!!!问题终于解决了,原来是在循环中重复调用 strlen( ) 函数导致了TLE,多谢原创 2013-04-12 07:11:10 · 1291 阅读 · 3 评论 -
hdu 3065 AC自动机
http://acm.hdu.edu.cn/showproblem.php?pid=3065题目大意:先给出一些单词,然后给出一段文章,统计并输出每个单词在文章中出现的次数。#include"iostream"#include"cstdio"#include"cstring"#include"queue"using namespace std;char word[1005原创 2013-04-13 07:56:42 · 782 阅读 · 0 评论 -
hdu 1250 字典树+内存释放
http://acm.hdu.edu.cn/showproblem.php?pid=1251/*第一次做字典树,找了一道比较简单的。建树的时候用到了new动态分配内存,刚好学C++的时候老师讲到了这一点,动态内存有申请就要有释放。但是在网上看了好多代码都没有清理内存。虽然能通过题目测试,但是却反映了一个编程态度的问题。在此告诫自己,也希望大家都能端正自己的态度,不要为了AC而A原创 2013-04-11 10:54:53 · 732 阅读 · 0 评论 -
hdu 1213 并查集
http://acm.hdu.edu.cn/showproblem.php?pid=1213 /*并查集就是查找两个元素的根结点,并按规定通过这两个元素把两元素所在的集合合并。属于同一集合的元素通过查找函数得到的根结点是相同的,由此可判断两个元素是否同属一个集合。确定根节点数:最后结果中,满足 Father[i]=i 的节点 i 为根节点;原创 2013-03-16 15:27:51 · 632 阅读 · 0 评论 -
hdu 3336(KMP)
http://acm.hdu.edu.cn/showproblem.php?pid=3336/*KMP中next数组的使用,可以加深对next数组的理解。学习KMP时看到两篇不错的博客,推荐给大家http://www.cnblogs.com/wuyiqi/archive/2012/01/05/2313746.htmlhttp://blog.csdn.net/niushuai66原创 2012-11-19 17:29:51 · 680 阅读 · 0 评论 -
hdu 1711(KMP)
http://acm.hdu.edu.cn/showproblem.php?pid=1711/*最简单的 KMPKMP算法的关键是 next[ ] 数组的确定, next[i] = j 表示当模式中的第 i 个字符与正文失去匹配时,可以直接让第 j 个字符与正文进行匹配;*/#include"iostream"using namespace std;#define N 1000005#def原创 2012-11-19 17:13:29 · 432 阅读 · 0 评论 -
hdu 3746(KMP) 最小循环节
http://acm.hdu.edu.cn/showproblem.php?pid=3746/* 通过KMP中的 next 数组求最小循环节 */题目要求:给出一个字符串,求出将字符串的全部字符最少循环2次需要添加的字符数。#include#includeint next[100005];char s[100005];void getnext(int len){ int i原创 2013-04-05 20:01:17 · 878 阅读 · 0 评论 -
qsort 快速排序
qsort函数是ANSI C标准中提供的,其声明在stdlib.h文件中,是根据二分法写的,其时间复杂度为n*log(n),其结构为:void qsort(void *base,size_t nelem,size_t width,int (*Comp)(const void *,const void *));其中:*base 为要排序的数组nelem 为要排序的数组转载 2013-03-16 19:14:20 · 691 阅读 · 0 评论 -
hdu 1166 线段树
http://acm.hdu.edu.cn/showproblem.php?pid=1166题目大意:T组测试,每组测试有N个工兵营,给出每个工兵营初始士兵人数。接下来有各种操作:Add i j i和j为正整数,表示第i个营地增加j个人(j不超过30)Sub i j i和j为正整数,表示第i个营地减少j个人(j不超过30);Query i j i和j为正整数原创 2013-05-15 09:49:06 · 785 阅读 · 0 评论