• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LyonLys
愿意在角落唱沙哑的歌 再大声也都是给你 请用心听 不要说话 Contact me via E-mail: lyon.lys@gmail.com
博客园    首页    新随笔    联系   管理    订阅  订阅
11 2012 档案
数据结构综合性实验:多种功能的平衡二叉排序树

摘要:数据结构的期末作业是关于平衡二叉排序树的综合性实验,其中需要完成的功能有:(1)插入新结点(2)前序、中序、后序遍历二叉树(递归)(3)前序、中序、后序遍历的非递归算法(4)层次遍历二叉树(5)在二叉树中查找给定关键字(函数返回值为成功1,失败0)(6)交换各结点的左右子树(7)求二叉树的深度(8)叶子结点数(9)删除某结点 搞了两三天,上面的功能都实现了。而且我弄的是模板,兼容性也就相对强了一些。 其实这对我只是一个锻炼而已,目测代码方面还有很多的地方可以改进,欢迎读者提出或指正。 弄这个的时候发现一个比较矛盾的地方,就是其中会有树交换子树的操作。交换后,原来升序将会变成降序,反之... 阅读全文
posted @ 2012-11-24 19:59 LyonLys 阅读(262) 评论(0) 推荐(0)
2012ACM/ICPC亚洲区域赛成都赛区 总结

摘要:成都一赛就此结束,这次的区域赛我们队伍暴露出一些相当大的毛病,以致于拿个铜牌也心惊胆战状。先说说试机的时候。其实试机,也就是热身赛,个人认为也是应该好好对待的。当时我们试机的时候,看到的三题都是水题,于是就计划一人做一题。我负责A(一道所有串两两拼接以后,判断有多少个新串是包含两个相同的长度为2的子串的问题),ly负责C(一道判断有多少个不同的小写字母的问题),hq负责B(一道计算平均有多少重复的子串的问题),不过最后是我打的B题。热身赛还没开始,所有人都打开了题目看了。于是真正开始的时候,排名第一的队伍直接以0罚时的速度ak了所有题。而我们,就是打算做完所有的一次性交上去。在大概开始了10分 阅读全文
posted @ 2012-11-15 11:43 LyonLys 阅读(361) 评论(0) 推荐(0)
poj 1177 Picture

摘要:http://poj.org/problem?id=1177 经典线段树,求矩形并的周长。把坐标排个序,然后插入线段树,求其变化的和就可以了。轻松1y~View Code 1 #include <cstdio> 2 #include <algorithm> 3 #include <vector> 4 5 using namespace std; 6 7 #define lson l, m, rt << 1 8 #define rson m + 1, r, rt << 1 | 1 9 #define root -10001, 10001 阅读全文
posted @ 2012-11-09 02:55 LyonLys 阅读(208) 评论(0) 推荐(0)
poj 1151 Atlantis(离散+线段树)

摘要:http://poj.org/problem?id=1151 数据量比较小,不过也是可以先离散坐标,再构建线段树,然后用扫描线在每个关键位置插入/删除线段并进行面积相加。View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <map> 5 #include <vector> 6 7 using namespace std; 8 9 map<double, int> id; 10 vector<doubl 阅读全文
posted @ 2012-11-08 16:08 LyonLys 阅读(189) 评论(0) 推荐(0)
hdu 2133 What day is it(蔡勒公式)

摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2133 蔡勒公式求某一天是周几。View Code 1 /*** 蔡勒公式,求某一天是周几(hdu 2133)***/ 2 #include <cstdio> 3 4 const char *ans[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" 阅读全文
posted @ 2012-11-06 03:45 LyonLys 阅读(196) 评论(0) 推荐(0)
数据结构作业:利用中序遍历和后序遍历构建二叉树(RMQ转LCA)

摘要:最近数据结构课给了一个二叉树的作业,给出二叉树的中序和后序遍历的序列,要求构建出改二叉树。我最初的时候是想到用map和RMQ来,以稳定O(nlogn)的时间构建这棵树。这样的复杂度已经是比普通的构建方法最坏情况O(n^2)(也就是单链的情况下)的复杂度要快不少的了。不过,今天在我打模板的时候找回我的笛卡尔树算法,那时忘记了是用来处理RMQ转LCA还是LCA转RMQ的了。于是,我就去回顾了一下LCA和RMQ的资料,发现RMQ是可以转成LCA的,其中区间最小值就是二叉树的对应的那两个端点结点的LCA(最低公共祖先)。以RMQ构建出来的树也恰好是我们想要的树。代码测试通过过小数据,准备用大数据来.. 阅读全文
posted @ 2012-11-06 01:35 LyonLys 阅读(303) 评论(0) 推荐(0)
zoj 3284 Matrix Processing(二维树状数组)

摘要:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3623 简单二维树状数组题。单点询问,两种更新(按行或者按列)。直接用二维的线段树,最多将更新的区间划分为3个。代码如下:View Code 1 #include <cstdio> 2 #include <cstdlib> 3 #include <algorithm> 4 5 using namespace std; 6 7 const int size = 105; 8 9 struct BIT2D { 10 int key[size][ 阅读全文
posted @ 2012-11-05 12:10 LyonLys 阅读(261) 评论(0) 推荐(0)
zoj 2112 Dynamic Rankings(SBT in SegTree)

摘要:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1112 这题以前我曾经是用k大数DC搜过去的,每次k大前都复制区间,理论上那是必然超时的。今天我用线段树套SBT过了这题,不过其实用树套树做,最后还是要二分结果区间来得到最终的结果,复杂度是O(nlognlogn)。最近看了可持续化数据结构的论文,这题用可持续化线段树可以使代码更简单,内存消耗更小,虽然复杂度貌似没有变。 这题建立多棵平衡树以后,在使用完以后必须销毁,不然会MLE的!代码如下:View Code 1 #include <cstdio> 2 #inc 阅读全文
posted @ 2012-11-04 02:51 LyonLys 阅读(245) 评论(0) 推荐(0)
poj 3225 Help with Intervals

摘要:http://poj.org/problem?id=3225 线段树,【区间更新,单点查询】。 题意很容易明白,开始的时候假设集合为空,然后通过一系列的操作后输出最终的集合是什么。 因为数据范围比较小,不用离散化。把每个端点和区间分离出来,然后构建线段树,线段树只标记每个结点的状态。每个操作其实可以看成是对区间异或或者对区间赋值,其中是怎么结合的看代码。异或的更新没写好,wa了两次,这是到现在还错的东西。。。囧!代码如下:View Code 1 #include <cstdio> 2 #include <algorithm> 3 #include <cstring 阅读全文
posted @ 2012-11-02 10:53 LyonLys 阅读(180) 评论(0) 推荐(0)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3