上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: 基尔霍夫矩阵 *给定一个无向图G,求它生成树的个数t(G); * *算法思想: *(1)G的度数矩阵D[G]是一个n*n的矩阵,并且满足:当i≠j时,dij=0;当i=j时,dij等于vi的度数; *(2)G的邻接矩阵A[G]是一个n*n的矩阵,并且满足:如果vi,vj之间有边直接相连,则aij=1 阅读全文
posted @ 2017-12-26 21:35 大奕哥&VANE 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 裸的网络流,这里要注意对于无向图建图可以将反向图的边改为一样的,这样可以减少一半边数。 还有一个优化就是如果当前这个点已经无法延伸则堵死。 By:大奕哥 阅读全文
posted @ 2017-12-26 20:59 大奕哥&VANE 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 判断两点间连通性,建图跑floyed 阅读全文
posted @ 2017-12-25 17:32 大奕哥&VANE 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 就是利用叉积的性质,如果向量A1到向量A2是顺时针则叉积为负反之为正。 然后我们可以二分的判断找到一个点恰被两条射线夹在一起。 然后我们再判断是否l,r这两个点所连直线与点的关系。 具体资料可以参照这个BLOG https://www.cnblogs.com/yym2013/p/3673616.ht 阅读全文
posted @ 2017-12-23 18:57 大奕哥&VANE 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 首先拍完序一一对应肯定是最优的,但是修改怎么办?我们可以局部考虑一下怎么计算答案,把点离散化一下,然后对于汽车我们看做+1,加油站看做-1,如果某个点的前缀和是0那么肯定匹配上了,否则就不是,那么贡献是什么,就是这个点的前缀和的绝对值乘上这个点和下一个点的距离(离散化以前的),不懂的话自己画图试一下 阅读全文
posted @ 2017-12-22 20:31 大奕哥&VANE 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 点分治模板题。 男人必做八题。 每棵子树统计经过根节点的满足情况个数,再减去子树中不经过根节点的情况个数,类似于一个容斥。复杂度O(Nlog^2N) 注意每次getroot所定的树的大小是改变的,不能一直是n否则会退化。 By:大奕哥 阅读全文
posted @ 2017-12-22 18:53 大奕哥&VANE 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 又是一道整体二分的题目,对于每段时间进行操作,判奇环,如果两个点已经联在一起并且是个奇环那么就不是二分图,不同于之前的树状数组,我们要对并查集进行清空操作,因此我们采用按秩合并,将小的合并到大的上面,这样复杂度就变为了O(NlogN) 阅读全文
posted @ 2017-12-21 20:56 大奕哥&VANE 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 好文艺的题目。 自己犯的**错误不想再提了,特别注意这题要求三个都相等时也计入统计,所以就特别处理一下。 裸的三位偏序,CDQ+树状数组 By:大奕哥 阅读全文
posted @ 2017-12-21 17:54 大奕哥&VANE 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 这题我们可以联想为普通的最长上升子序列,既f[i]=max(f[j])+1;i>j 所以这个就有了后效性,我们只关注他的左区间对答案的贡献,也就是j<=mid i>=mid+1; 所以顺序就变为了左边,中间,右边 By:大奕哥 LIS的dp很简单,三维偏序,max[j]<a[i] a[j]<min[ 阅读全文
posted @ 2017-12-20 21:55 大奕哥&VANE 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目要求是求出两个序列中处于相同位置区间并且最大值相同的区间个数,我们最直观的感受就是求出每个区间的最大值,这个可以O(N)的求,利用单调栈求出每个数作为最大值能够覆盖的区间。 然后我们可以在进行单调栈的时候统计一下答案,怎么统计呢?就是在一个数列弹栈的时候在另一个数列的单调栈中找到这个数,然后分别 阅读全文
posted @ 2017-12-20 19:36 大奕哥&VANE 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 这题与之前那道区间最值的题非常类似,依旧是二分区间,然后统计跨过中间点的区间贡献。 我们要选出小于等于和小于的,这样就可以算出相等的区间长了。 复杂度O(nlogn) By:大奕哥 阅读全文
posted @ 2017-12-20 18:41 大奕哥&VANE 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 我的OI生涯 第五章 千古诗才,蓬莱文章建安骨 一身傲骨,青莲居士谪仙人 李白追月逆江河 包黑斩龙顺民心 豪气压群雄,能使力士脱靴,贵妃捧砚; 仙才媲众美,不让参军俊逸,开府清新 我辈此中惟饮酒 先生在上莫题诗 酒入豪肠 七分化作月光, 剩下的三分 啸成了剑气, 绣口一吐 就是半个盛唐。 纪念余光中 阅读全文
posted @ 2017-12-19 20:57 大奕哥&VANE 阅读(485) 评论(1) 推荐(0) 编辑
摘要: 题目的大意是求一个数列中任意一个区间的长度乘上区间最大值和最小值求和。 我们二分来做这个题,每次递归处理,然后我们只需统计所有跨过中点的区间的贡献即可。 我们枚举[l,mid]区间里的每一个数a[i] (l<=i<=mid),因为无论最大值和最小值随着区间扩大有单调性,所以我们维护两个指针,分别记录 阅读全文
posted @ 2017-12-19 19:55 大奕哥&VANE 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题目中要求phi和miu的前缀和,利用杜教筛可以推出公式。我们令为 那么有公式 类比欧拉函数,我们可以推出莫比乌斯函数的和公式为 (公式证明懒得写了,主要核心是利用Dirichlet卷积的性质 phi * 1 =id, mu * 1 =0(n>1) 然后利用神奇的杜教筛搞一搞 ) 因为有一个n=1的 阅读全文
posted @ 2017-12-18 21:48 大奕哥&VANE 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 一个二维偏序的问题,学过了三维偏序cdq分治之后觉得这个题非常的水。只需按一维排序之后再用树状数组操作即可。——by VANE 二维偏序用cdq我是不是有病,我就是要写cdq 15000ms卡过去了 By:大奕哥 阅读全文
posted @ 2017-12-18 21:24 大奕哥&VANE 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 首先看上来就可以进行二分,但是答案是n个,所以我们进行整体二分,每次分成两个集合,一个集合可以完成,一个不可以,然后继续二分即可。 学习了Vergil学长的做法,偷懒用了vector,然后luogu上90分,懒得用数组去模拟实现了(都是细节)——by VANE 阅读全文
posted @ 2017-12-18 18:51 大奕哥&VANE 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 是一道简单的CDQ分治,等做够一些以后会做一个CDQ的专题。 对于时间和x建立确定两维加上y是三维偏序,学习了一个time标记,如果这次time不同的话就不进行操作,这样的话可以省去一般的时间。 代码 By:大奕哥 阅读全文
posted @ 2017-12-17 20:47 大奕哥&VANE 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 线段树+并查集,对于每个操作我们只需要维护他在自己子树中的最值和在整个树里的最值,类似于线段树动态开点。 阅读全文
posted @ 2017-12-17 08:16 大奕哥&VANE 阅读(247) 评论(0) 推荐(0) 编辑
摘要: fhq treap+启发式合并,将小的合并到大的上面,复杂度NlogN。 最好的一点是通过dfs将一个子树内的元素转到另一个元素上。 By:大奕哥 阅读全文
posted @ 2017-12-15 18:40 大奕哥&VANE 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 学了半天平衡树,选择了一道题来写一写,发现题目是裸的splay模板,但是还是写不好,这个的精髓之处在于在数列的某一个位置加入一个数列,类似于treap里面的merge,然后还学到了题解里面的的回收空间做法,利用时间换取空间也是一种非常不错的做法,由于题目中有区间翻转的操作,所以只能用splay来写, 阅读全文
posted @ 2017-12-15 16:23 大奕哥&VANE 阅读(236) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页