随笔分类 - 数据结构
摘要:在程序设计中,为了优化算法可能会用到滑动窗口或者双指针的思想,这种算法能够蛮力情况下的复杂度降低为线性。滑动窗口的问题通常可以用双指针来解决,即用头尾两个指针来约束窗口大小。 网上对于这两个名词的定义和解释莫衷一是。个人理解,固定一段窗口/区间大小而衍生的问题可以理解为单纯的滑动窗口
阅读全文
摘要:哈夫曼编码是一种变长编码,根据字符频率确定编码的长度。在学习数据结构时,我们知道,通过贪心的策略自底向上构造二叉树,最后得到哈夫曼树。从根节点遍历,便可以得到编码。 本文给出了经典教材《数据结构》一书上算法6.12的具体实现细节。 类型定义 构造二叉树的过程为:初始为全部字符的 个叶子节
阅读全文
摘要:再谈二叉树的序列化与反序列化 最近无聊写写题,又看到这个序列化的题,牛客网序列化二叉树 之前有过两种方式实现1 2,序列化的过程好理解,反序列化则是分别利用先序+中序遍历序列递归重建二叉树或者根据每个节点位置和值迭代方式重建二叉树。这两种序列化的实现都需要额外的空间,序列化后的序列都至少需要两倍的原
阅读全文
摘要:深信服的笔试跟大厂不太一样,除了编程题,还有选择题、填空题,额外考察离散数学、C语言、数据结构、算法等知识点。编程题比较简单(虽然调了很久... 选择题 双向链表删除节点操作 lowbit()代码补全:x&(-x) 用来判断2次幂的整数:x&(-x) == x 复杂度分析 for (int i=0;
阅读全文
摘要:二叉树的序列化与反序列化 字节面试 在我的博客树的遍历中介绍了利用递归建树的算法解决如何从树的先序+中序序列恢复原树的结构。考虑到当时还是debug了很久,这次面试写代码时我转化了思路。面试时在牛客网的平台上没有写出反序列化的完整代码,向面试官解释了代码思想。今天整理了一番。 序列化 将二叉树看作类
阅读全文
摘要:ACM ICPC 2018 徐州赛区网络赛 去年博客记录过这场比赛经历: "该死的水题" 一年过去了,不被水题卡了,但难题也没多做几道。水平微微有点长进。 "D. Easy Math" 题意: 给定 , ,求 $\sum
阅读全文
摘要:// 签到题,比赛时候写双向链表debug了半天,发现有更好方法,记录一下。 Shuffle Card "HDU 6707" 题意: 有一 张卡片,编号 ,给定初始编号排列和 次操作,每次操作将编号为 的卡片放到第一张上面。求最后卡
阅读全文
摘要:// 由于前两天打Orz杯队友卡在一道最优比例生成树01分数规划的题上,我帮忙debug也没AC。 // 反思自己不会使用Kruskal算法,特地来总结一番图论的基础算法:最小生成树。 题目背景: 求一个无向图的最小生成树,一般有两种算法,Prim 和 Kruskal 。 两种算法的原理和证明就这里
阅读全文
摘要:H - XOR 题意:给定n个整数,求所有异或和为0的子集的大小和。 思路:看到异或和,差不多就要往线性基上想。如果一些数异或和为0,肯定是线性基里的一些数和线性基外的一些数异或得到的,因为线性基外的数都能由线性基里的数异或得到。 先对n个数求线性基lb,设线性基大小为r。 1.线性基外的数的贡献:
阅读全文
摘要:// CF比赛链接:http://codeforces.com/gym/101650 // POJ链接:http://poj.org/searchproblem?field=source&key=Northeastern+Europe+2006,POJ3379 ~ POJ3389 // Day12
阅读全文
摘要:// 很久不写图论,连模板也不熟悉了0.0 // 这题是一个技巧性比较高的暴力DFS Catenyms 题目大意 定义catenym为首尾字母相同的单词组成的单词对, 例如: dog.gopher gopher.rat rat.tiger aloha.aloha arachnid.dog 而cate
阅读全文
摘要:今天写了一天北京信息科技大学校赛题,难度不大,跟西电校赛风格类似,大部分为数学题与规律题。(改日更) 其中的I题为树状数组/线段树模板题,发现之前没有在博客总结,一时也找不到好的模板,于是重新深入学习了一番。 首先引入洛谷上的模板题: P3374 【模板】树状数组 1 题目描述 如题,已知一个数列,
阅读全文
摘要:根据访问根节点与左右子树的先后顺序,二叉树一般有三种遍历方式:先序遍历、中序遍历和后序遍历。 只要给定中序遍历序列与先序或后序中的一种,可以还原二叉树结构。学习数据结构课程时,一直都只会手动构建还原二叉树。今天试着解决了该问题,记录一下成果。 稍加修改应该可以解决此题(L2-006 树的遍历),最后
阅读全文
摘要:在第一场CCCC选拔赛上,有一关于系统调度的水题。利用优先队列很容易AC。 // 由于比赛时花费了不少时间研究如何定义priority_queue的比较函数,决心把STL熟练掌握... Queue 首先来看http://www.cplusplus.com/reference/queue/queue/
阅读全文