上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: 主席树,一个数据结构,能访问到历史版本的数据,常用于可持久化和区间k大值,是线段树的一个升级版。 可持久化 可持久化的意思是可以访问任意版本的数据,一眼想到的暴力做法就是开n个数组来记录,这显然是不可取的。 那么我们考虑优化。若只有单点修改,不难发现每两个版本的差别最多为1,那么我们是不是可以只更改 阅读全文
posted @ 2019-01-19 22:34 呢没理他 阅读(1234) 评论(0) 推荐(4) 编辑
摘要: 拿到这道题的一般思路就是直接暴力枚举每一对l,r,再拿l与r的每一个数与p比较,这样就可以O(n^3)(不满)的复杂度获得60分 include using namespace std; int n,k,p,ans; struct edge { int c,m; }a[200005]; inline 阅读全文
posted @ 2019-01-19 20:27 呢没理他 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 一、概念 线段树,在各个节点保存一条线段 可以高效解决连续区间的修改查询问题 由于二叉结构的特性 它每次操作能保持每个操作的复杂度为O(logn) 由于是一棵二叉树 每个节点的信息都会被logn个左右的节点记录 所以空间消耗一般较大(一般是4 n) 二、操作 1、预处理 我们先考虑节点个数是2的n次 阅读全文
posted @ 2019-01-19 20:12 呢没理他 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 这里介绍的是高斯 约旦消元法。 相对于传统的高斯消元,约旦消元法的精度更好、代码更简单,没有回带的过程。 约旦消元法大致思路如下: 1.选择一个尚未被选过的未知数作为主元,选择一个包含这个主元的方程。 2.将这个方程主元的系数化为1。 3.通过加减消元,消掉其它方程中的这个未知数。 4.重复以上步骤 阅读全文
posted @ 2019-01-19 20:08 呢没理他 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 状态压缩就是将一行的状态压成一个二进制数,这个数的二进制形式反映了这一行的情况 比如0100111的意义为:这一排的第一个数没被使用,第二个被占用了,第三四个没被占用,第五六七个被占用 我们知道位运算和状压DP一样,也是在二进制下进行的,所以位运算往往可以解决很多问题 我们来看看状压DP(位运算)的 阅读全文
posted @ 2019-01-19 20:07 呢没理他 阅读(650) 评论(1) 推荐(1) 编辑
摘要: upd:$(x1,y1)(x2,y2)$表示以$(x1,y1)$为左上端点 $(x2,y2)$为右下端点的矩形 本来以为是一道二位树状数组的模板,但是看数据范围之后就放弃了,边界既然到了2000000,那么我们只能使用其他办法来代替树状数组 ~~于是,CDQ分治就诞生了!~~ 此题我们可以把问题转化 阅读全文
posted @ 2019-01-19 20:06 呢没理他 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 看到题解大部分都是用‘递归+路径压缩’做的,所以本蒟蒻就来发一篇‘循环+路径压缩版并查集’的题解。速度比递归版本更加优秀~~(其实循环代码还要好写一些)~~。 并查集的操作有三步,初始化查找祖先与合并。 既然并查集是来查找祖先的,那么初始化就必然是让每个点的祖先指向自己 阅读全文
posted @ 2019-01-19 20:05 呢没理他 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 这道题思路真是妙啊QWQ "原题地址" 题目大意:在一个平面内,求出所有的高度大于$0$的点与$(0,0)$的连线没有与之前的线段相交的楼房,带修改 看到带修改,显然会想到数据结构来维护,再看到再平面区间加减和区间查询,显然又会想到线段树。 那线段树的每一个节点要维护什么值呢? 看到题面自然会想到斜 阅读全文
posted @ 2019-01-19 20:04 呢没理他 阅读(267) 评论(0) 推荐(0) 编辑
摘要: "原文地址" 生成树的概念: 在一个无向图中,设顶点数为$n$,取其中$n 1$条边并使所有点相连,所得到的一棵树即为生成树。 最小生成树: 如果还没有接触过生成树的同学,欢迎戳 "最小生成树详解" 次小生成树: 次小生成树顾名思义,就是边权之和次小的一棵生成树。有严格次小生成树与非严格次小生成树之 阅读全文
posted @ 2019-01-19 20:03 呢没理他 阅读(1303) 评论(0) 推荐(5) 编辑
摘要: 我又爆零了…… 阅读全文
posted @ 2019-01-19 20:02 呢没理他 阅读(543) 评论(8) 推荐(1) 编辑
上一页 1 ··· 4 5 6 7 8 9 下一页