摘要: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[o],若其表示的区间为[l,r],它的左儿子表示的区间为[l,mid],右儿子表示的区间为[mid+1,r]。因此线段树是平衡二叉树,最后的子节点数目为n,即 阅读全文
posted @ 2018-11-20 20:50 cold_cold 阅读(151) 评论(0) 推荐(0)
摘要: LIS指一个序列中最长的单调递增(严格)的子序列。有一种较为朴素的O(n^2)的做法,我们不多做赘述,我们讲一种用单带栈和二分来实现的O(logn)的算法 我们从1-n枚举,若该数比栈顶元素大,那么我们就将该数压入栈中。否则我们就在整个栈中二分到一个第一个大于等于它的数,将其用a[i]替换。 考虑为 阅读全文
posted @ 2018-11-20 20:41 cold_cold 阅读(233) 评论(0) 推荐(0)
摘要: 1. 01背包:有 N 件物品和一个容量为 V 的背包。第 i 件物品的费用是 c[i],价值是 w[i]。求解将哪些物品装入背包可使价值总和最大。 对于这类问题我们我们定义f[i][j]表示在前i个物品中选总容量为j所能得到的最大价值为多少于是我们状态转移便是这样 f[i][j]=max(f[i] 阅读全文
posted @ 2018-11-20 20:23 cold_cold 阅读(318) 评论(0) 推荐(0)
摘要: 快速读入能使我们的程序常数减小,这里介绍一种较为快速的方法。 我们用这个gc来代替我们快读的getchar,速度大概是getchar的7倍。此处stdin,和in是文件指针,当我们使用freopen时我们使用第一行,当我们使用fopen的时候我们需要文件重定向再使用第二行的gc即可。加上快读速度极快 阅读全文
posted @ 2018-11-20 19:41 cold_cold 阅读(221) 评论(0) 推荐(0)
摘要: 单精加过程: 高精加过程: 高精减过程: 单精乘过程: 高精乘过程: 单精除过程: 输出: 总代码如下: 阅读全文
posted @ 2018-11-20 19:35 cold_cold 阅读(501) 评论(0) 推荐(0)
摘要: 联赛已经结束,此次联赛成绩289分,是否能得到一等奖,还是一个谜。无论我是否能得到一等奖,成绩都已经已经尘埃落定。此次考试我发挥的很不好,但这次发挥的不好,但是这次发挥的不好既是意料之中又是意料之外的事, 1. 在一个月的娄底集训中的模拟考试我的成绩一直上下起伏不定。所以联赛失手也是可以预料到的 2 阅读全文
posted @ 2018-11-20 19:05 cold_cold 阅读(139) 评论(1) 推荐(0)
摘要: 二叉搜索树(Binary Search Tree)它要么是一棵空树,要么是一棵具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左,右子树也分别为二叉搜索树 二叉搜索树上的每一个结点都维护四个值, 阅读全文
posted @ 2018-11-18 14:05 cold_cold 阅读(362) 评论(0) 推荐(0)
摘要: Treap=BST+Heap,BST指的是二叉搜索树,而Heap指的是二叉堆,在此处我们使用的是小根堆. Treap上的每一个结点都维护六个值,一个是它本身的权值data,一个是用于维护堆的性质的权值key(他是随机赋上的一个值),那么我们为什么要给每一个点赋一个随机的key值呢?可以由玄学证明ke 阅读全文
posted @ 2018-11-18 13:36 cold_cold 阅读(285) 评论(0) 推荐(1)
摘要: 其实在我学习二叉堆之前,我一直使用优先队列来实现堆完成堆优的Dijkstra,和其他操作,但此次我学习平衡树treap的时候,要用到堆的思想,所以我不得不学习一下二叉堆 一个二叉堆(以下均简称为堆),首先是一棵完全二叉树,满足树高近似于logn,这就能够保证其复杂度在logn级别,以下我们拿小根堆举 阅读全文
posted @ 2018-11-17 20:03 cold_cold 阅读(1048) 评论(0) 推荐(0)