栈的理论描述 栈是一个有序线性表,只能在表的一端(成为栈顶,top)执行插入和删除操作。最后插入的元素将第一个被删除。所以栈也称为后进先出(Last In First Out)或先进后出(First In Last Ou…
分类:数据结构
数据结构(二分法)
最近总是在想着,如何去设计,如何更好的编码,更充分地体会面向对象的思想,也刻意往这方面去学习。写了几年代码,也改总结总结,发现最重要的还是在与思考。重温了一下《程序设计实践》这本书,进一步规范反思下自己写的代码风格、质量…
redis源码分析(七):集群--哨兵模式
redis在启动时,如果进程名是”redis-sentinel”,或者参数中带了”–sentinel”,这时redis便以哨兵的方式运行。一个sentinel可…
巧用函数栈实现栈的反转
一、函数栈 函数的调用过程其实就是一个压栈的过程,在函数栈中,每个函数所占空间成为一个 栈帧。栈帧中保存着函数的形参,返回地址,局部变量,EBP等信息。一个栈帧可以理解为栈的一个元素,函数调用过程是压栈的过程,函数返回则…
栈与栈的实现
栈 栈是一种基础的数据结构,只从一端读写数据。基本特点就”后进先出“,例如顺序入栈1,2,3,4,5,再顺序出栈是5,4,3,2,1 栈的基本操作 栈的基本操作有如下几种: 检测栈是否为空 返回栈存储数据的数量 返回栈顶…
BZOJ-1072: [SCOI2007]排列perm(状压DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1072 状压DP搞一搞,记得弄掉重复数字导致的重复方案数。。。 代码: #include <cstdio>…
Leetcode第11题至第20题 思路分析及C++实现
笔者按照目录刷题,对于每一道题,力争使用效率最高(时间复杂度最低)的算法,并全部通过C++代码实现AC。(文中计算的复杂度都是最坏情况复杂度) 因为考虑到大部分读者已经在Leetcode浏览过题目了,所以每道题都按照 解…
BZOJ-1566: [NOI2009]管道取珠(DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1566 事实上求sigma(ai^2)可以理解成求操作序列A与操作序列B产生的结果一样的(A,B)的对数,那么DP,…
BZOJ-3626: [LNOI2014]LCA(离线+LCT)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3626 最近没怎么发题解额。。。刷的题都太水了没办法啊。。。其实这道还是水题。。。虽然我想了好久: 首先,lca一定…
BZOJ-1062: [NOI2008]糖果雨(二维树状数组)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1062 首先把每个云抽象成一个点(x,y),表示该云在mod 2len意义下到达最左端的时间为x和长度为y,那么我们…
安卓数据结构06-哈夫曼树与哈夫曼编码
数据结构06-哈夫曼树 一、哈夫曼树的基本概念 1.哈夫曼树 给定n个权值作为n个叶子节点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路…
BZOJ-2716: [Violet 3]天使玩偶 && BZOJ-2648: SJY摆棋子(k-d树)
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=2648 http://www.lydsy.com/JudgeOnline/problem.php?id=2716 …