![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 72
a363514083
这个作者很懒,什么都没留下…
展开
-
hdu1022栈的应用
//简单的进栈出栈操作的应用..//题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1022#include#include#include#include#includeconst int inf =0x3f3f3f;using namespace std;int main(){ int n;原创 2011-10-26 23:49:37 · 266 阅读 · 0 评论 -
树状数组总结二
树状数组小结分类:算法学习 | 作者:酷~行天下 | 发表于2011/07/10 1条评论 513 views最近做了HDU几道树状数组的题,小小总结一下…… 树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n],那么查询a[1]+…+a[n]的时间是log级别的,而且是一个在线的数据结构,支持随时修改某个元素的值,复杂度也为log级别。原创 2011-12-08 00:50:54 · 782 阅读 · 0 评论 -
树状数组专题(九)之hdu2852
//题目大意:给3种N个操作.0 a.增加一个元素a,1 a删除一个元素a,2 a k,//输出一个比a大的第K个元素;//其中,特殊情况是删除的时候没元素时输出not element!//没有第k个元素的时候输出 not find!//题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2852//而找到第K个元素的方法就是通过树状数原创 2012-01-08 14:31:59 · 341 阅读 · 0 评论 -
树状数组专题(十)之hdu4000
//题目大意:给一串数字,找出所有满足a[x]//其中x,y,z满足x//采用用全部可能的减去不可能的就是答案的思想//a[i] 后面有t个比a[i]大.则t*(t-1)/2就是可能的//再减去形成x//这里重点讲解处理连续递增的情形..//有点dp记录的思想..//比如现在处理的位置有一个5.那么需要考虑的就是前面已经出现了的//比5小的数的组合有多少种..全部加原创 2012-01-08 16:06:28 · 345 阅读 · 0 评论 -
树状数组专题(十一)之hdu2688
//本题大意:给出一个数组..然后给出m个处理//Q表示输出现在的递增2元组有多少个..//R a b表示对a-b这个区间进行循环//题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2688//处理方式..一次进行树状处理..然后因为b-a比较小..//所以可以直接模拟就OK了.#include#include#incl原创 2012-01-08 16:10:44 · 396 阅读 · 0 评论 -
树状数组专题(十二)之hdu2227
//题目大意前面hdu4000处理过三元素的递增序列.//这里要求输出所有递增的子序列..//题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2227//本来处理情况也可以那样..但是由于数据太大了.//开数组要开到2^32.不行..但是数据个数只有100000//所以有一个新的处理方式..a[] = 1,6,5,2,3//b[原创 2012-01-08 16:15:54 · 649 阅读 · 3 评论 -
树状数组专题(十三)之hdu3450
//题目大意:给出一个序列和d,找出所有满足相邻元素的差得绝对值//题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3450//这里没有给出数据的大小..试了试.是比较大的.开tree数组开不了这么大//所以使用处理2227题目的那种处理方式来做本题.//同时还要注意和2227的区别..因为这里不可能形成单元素序列//所以对dp[i原创 2012-01-08 16:22:27 · 559 阅读 · 0 评论 -
树状数组专题(八)hdu2838计算逆序数
#include#include#include#include#include#include//Getsum1用来计算在某个位置i前面比a[i]大的数的总和.//Getsum2用来计算在某个位置i前面比a[i]大的数的个数.//比如 2 3 1 那么 Getsum1得到了5 Getsum2 得到2//总和就是结果7..using namespace st原创 2012-01-05 16:17:43 · 426 阅读 · 0 评论 -
树状数组终结篇(十四)之hdu2492
//本题大意:找到所有增序和降序的三元素子序列//题目链接://用树状数组计算i位置左边比他小的*右边比他大的//加上左边比他大右边比他小的..就是ans#include#include#include#include#include#include#includeusing namespace std;const int mn = 100000;原创 2012-01-08 16:54:48 · 396 阅读 · 0 评论 -
CSUOJ优先队列
//本题大意:给一串数组:a[n]和k要求求出一串连续的子序列,子序列的max-min//题目连接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1170//解题思路..因为n是10^6.所以不能用朴素的算法(n^2)来爆搜..//但是可以从朴素算法优化过来..当从1->n搜索的时候..搜到一个地方不合法//就可以直接从1转到之前原创 2012-03-06 20:45:47 · 426 阅读 · 0 评论 -
树状数组专题(四)POJ3067
//本题大意..类似于寻找坐标上的左上角的点的sum#include#include#include#include#include#include#includeconst int inf = 0x3f3f3f;const int MN = 1100000;using namespace std;int tree[11111];int maxn,n原创 2011-12-07 01:59:22 · 297 阅读 · 0 评论 -
树状数组专题(六)hdu1556
//这是属于树状数组的应用二..对一段区间进行修改..然后访问点的更新值..//如何对于一段区间[a,b]更新的情况Updata(a,1);Updata(b+1,-1)的理解..//因为是对于[a,b]区间内的更新..那么只更新a是如何去理解呢..//对于Getsum(i)得到的是1-i的总和..那么Updata(a)以后..对于a-n都加了1..//然后对b+1-->n更新-1.原创 2011-12-08 00:48:23 · 492 阅读 · 0 评论 -
已知前序和中序递归后序
//实现原理:首先..三者知二科解第三个,同时,必须有一个是中序遍历.//以前序遍历和中序遍历递推后续遍历为例..//前序ABDEMNPQCFHIGJK//中序DBMEPNQAHFICJGK//那么从前序开始..根据前序先访问根节点的性质,那么第一个A就是整棵树的根节点.//在中序中找到A,那么A的左边就是根节点的左子树,右边就是根节点的右子树..//所以可以每次递归的由前原创 2011-10-31 12:29:32 · 355 阅读 · 0 评论 -
已知后序中序递归前序
#include#include#include#includeusing namespace std;const int inf = 0x3f3f3f;struct node{ char data; node *lchild,*rchild;};int searchchar(char c,char *order){原创 2011-10-31 12:30:33 · 238 阅读 · 0 评论 -
在学习递归后序时学到的东西.
1..在结构体里面定义一个自身结构体可以用一个指针,struct node{ char data; node *lchild,*rchild;};但同时要注意.这样是无法直接p.lchild = `````使用的.2.node* creattree(char *pre,char *in)为什么这样要声明函数是指针类型的..因为对于结构体来说..当我遇原创 2011-10-31 12:39:25 · 307 阅读 · 0 评论 -
树状数组学习以及题目总结
上一篇我们对树状数组进行了一些分析(详见树状数组学习系列1 之 初步分析——czyuan原创http://hi.baidu.com/czyuan_acm/blog/item/49f02acb487f06f452664fbc.html),这篇主要是对各大OJ有关树状数组的题目进行汇总。 先提个注意点,由于Lowbit(0) = 0,这会导致x递增的那条路径发生死循环,所有当树状数组转载 2011-11-29 13:07:29 · 409 阅读 · 0 评论 -
树状数组专题(一)POJ2352
#include#include#include#include#includeusing namespace std;const int maxn = 32101;int tree[maxn];int Lowbit(int x){ return x&(-x);}void Updata(int x){ for(int i = x原创 2011-11-29 15:50:28 · 401 阅读 · 0 评论 -
ACM题目推荐--《算法艺术与信息学竞赛》
ACM题目推荐--《算法艺术与信息学竞赛》2008-09-04 12:21一.动态规划参考资料:刘汝佳《算法艺术与信息学竞赛》《算法导论》推荐题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1141 简单http://acm.pku.edu.cn/JudgeOnline/problem?id=2288 中等,经转载 2011-11-10 17:28:35 · 570 阅读 · 0 评论 -
树状数组专题(二)hoj1867经理的烦恼
//题目大意,给定N个商店,有初始商品数量.有两种指令,0 x y 表示x位置的商店的商品数量增加y//1 x y 表示查询[x,y]区间内的商品数量为素数的商店的数目..//这里更新的条件就变成去判断更新值是否从非素数变成素数或是从素数变成非素数..//然后对树状数组进行更行..//题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=18原创 2011-12-06 15:51:03 · 733 阅读 · 0 评论 -
树状数组专题(三)POJ2481
//这里有几个需要学习的东西.//1..如何对结构体进行调用排序函数的operator的操作构造//2..如何把这个题目转换成为树状数组的思维..//3..如何去记录一个数组排序前的位置..在结构体里面加一个元素记录原来的位置.#include#include#include#include#include#include#includeusing na原创 2011-12-07 00:23:20 · 329 阅读 · 0 评论 -
树状数组专题(五)hdu1166
#include#include#include#include#include#include#includeusing namespace std;const int inf = 0x3f3f3f;const int MN = 51000;int n,a;int tree[MN];int Lowbit(int x){ return原创 2011-12-07 20:51:12 · 294 阅读 · 0 评论 -
ACM常用数据结构
基本结构高级结构题单集合结构 幷查集POJ 1182POJ 1308POJ 1611POJ 1986POJ 1988线性结构数组栈队列双端队列POJPOJPOJPOJPOJ树状结构二叉树BST转载 2012-03-07 15:25:58 · 552 阅读 · 0 评论