![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 56
皮卡丘来了
淡定
展开
-
HDU - 2222 AC 自动机模板
AC自动机详解 资料链接 http://www.cppblog.com/mythit/archive/2009/04/21/80633.html题意:给你一些单词,,让你统计出现文章中的单词数....此算法较难,必须要懂得 字典树 , kmp 算法,,但是还是太难,,林神也说自己忘了,要我自己看....悲催...搞了好久了....还是不懂失败指针的用法...原创 2012-11-13 18:50:15 · 713 阅读 · 0 评论 -
HDU 2586 lca 最近祖先
/*邻接表 + lca最近公共祖先主要采用 DFS(遍历后序) + 并查集(不需要压缩路径) 方法实现后序回溯过程,更新该节点的父亲节点 */#include#include#include#include#includeusing namespace std;#define manx 40009vector v[manx],w[manx],que[manx],ans_原创 2013-07-05 10:51:47 · 872 阅读 · 0 评论 -
HDU 4251 划分树
/*划分树:解题类型单一,给出10^5个点,给你 q 个查询,每次查询出[l,r] 中第 k 大的值。划分树: 主系列 4 3 2 5 6 7 8 1 9 排序后 1 8 3 6 5 4 7 2 9 中位数是 5 划左原创 2013-07-06 08:41:08 · 1018 阅读 · 0 评论 -
HDU 4417 划分树+二分
#include#include#include#includeusing namespace std;#define manx 100009int x[manx],tree[20][manx],sum_left[20][manx];void make(int level,int left,int right){ if(left==right) retur原创 2013-07-06 14:27:18 · 841 阅读 · 0 评论 -
位运算个人小结
计算机系统内部的数值计算都是通过补码运算实现的。包括 各种位运算 等等。。补码:正数的补码就是其原码,负数的补码是其 原码取反+1 例:3 原码表示:0000 0000 0000 0011 补码表示:0000 0000 0000 0011 -3 原码表示:1000 0000 0000 0011 补码表示:1111 1111 1111 1100原创 2013-07-31 17:19:33 · 754 阅读 · 0 评论 -
后缀数组
后缀数组比较大小:题目:给你一个字符串 s , 它有所有的 后缀串suffix[i]={s[i],s[i+1],....,s[len-1]};现在给你 p(p#include#include#include#include#includeusing namespace std;#define manx 10009string s,suffix[manx]原创 2013-08-11 09:05:17 · 679 阅读 · 0 评论 -
stl map set
摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。STL map和set的使用虽不复杂,但也有一些不易理解的地方转载 2013-08-11 15:12:36 · 938 阅读 · 0 评论 -
set 删除某个特定值的用法
c++标准库——set和multiset容器1 set和multiset容器set和multiset容器的内部结构通常由平衡二叉树(balanced binary tree)来实现。当元素放入容器中时,会按照一定的排序法则自动排序,默认是按照less。这种自动排序的特性加速了元素查找的过程,但是也带来了一个问题:不可以直接修改set或multiset容器中的元素值,因为这样做就转载 2013-08-11 15:54:51 · 7162 阅读 · 0 评论 -
set 模拟平衡树解题
例. 营业额统计(湖南选拔赛)[问题描述]公司的账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况:该天的最小波动值 = min{ | 改天以前某天的营业额 - 当天的营业额 | }原创 2013-08-11 17:25:16 · 1913 阅读 · 1 评论 -
HDU 3635 带权并查集
/*分析注意几点:1,龙珠不可能 再次回到他最初呆的城市2,压缩路径,转移的次数为 **原始 + 前一个父亲节点的转移次数 ** */#include#include#include#includeusing namespace std;#define manx 10009int pre[manx],ans[manx],sum[manx];int root(int x原创 2013-07-05 15:15:35 · 909 阅读 · 0 评论 -
文本树
原创 2013-07-18 11:18:23 · 1535 阅读 · 0 评论 -
HDU 3308 最长上升连续子序列 (线段树)
题意不用说了,此题是传说中的 “傻仔哥” 出的,虽然不知教主真名,但是还是看着他的线段树长大的....Code:#include#include#include#include#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1#define manx 100050using namespace s原创 2012-12-25 11:42:08 · 1079 阅读 · 0 评论 -
POJ 3667 线段树 + 延迟标记 + 区间处理
/*贴个神牛的代码,自己写的代码难看的别提有多恶心了 ...类型:线段树 + 延迟标记 + 区间合并... */#include#include#include#include#includeusing namespace std;#define L(r) r<<1#define R(r) r<<1|1const int MAXM=50005;typedef str原创 2012-12-25 15:22:26 · 855 阅读 · 0 评论 -
哈夫曼树 HDU 1053 HDU 2527
#include / * HDU 2527 裸的哈夫曼树 * /#include#includeusing namespace std;#define manx 100#define inf 9999999;mapmp;struct node{ int weight; int parent; int lch; int rc原创 2012-12-18 15:59:52 · 814 阅读 · 0 评论 -
哈夫曼编码课设
/* 因为总计就是255个字符(状态),所以采用深搜是完全没有压力的 */ #include#include#includeusing namespace std;#define manx 100#define inf 9999999;mapmp;struct node{ int weight; int parent; int lch;原创 2012-12-18 18:37:55 · 1333 阅读 · 0 评论 -
排序总结
/*排序基础:冒泡,起泡... 注意加等号的意义何在... */#include#includeusing namespace std;#define manx 5000int x[manx];void sort(int n){ //// 冒泡 for(int i=0;i<n;i++) for(int j=1;j<原创 2013-01-18 14:27:58 · 1059 阅读 · 0 评论 -
HDU 1872稳定排序优先队列
/* 优先队列, 两个优先性处理。。 */#include#include#include#include#include#include#define manx 350using namespace std;struct temp{ string str; int num; int point; }nod原创 2013-03-28 21:08:51 · 1183 阅读 · 0 评论 -
HDU 3473 划分树求某段区间的和
自己写的代码恶心,贴上别人的代码:#include#includeint MIN(int a,int b) { if( a<b ) return a; else return b; }int MAX(int a,int b) { if( a>b ) return a; else return b; }#define CLR(NAME,VALUE) memset(NAME,VAL原创 2013-07-06 10:47:13 · 930 阅读 · 0 评论 -
HDU 4547 CD操作,lca 求两节点的公共祖先和深度
/*目录刚好成一颗树。树有唯一的根结点。每步操作可以到上一级目录,或者直接到下面的目录。 其实就是查询LCA 要求u->v把u、v的lca求出来,设为tmp那么肯定是先u->tmp->u u->temp的步数刚好是他们的深度差,一个数组存深度差就可以了。 temp->v如果不相等就是一步,相等就是0步*///===========转载 2013-08-18 22:24:03 · 894 阅读 · 0 评论