愿岁月如歌

爱算法/爱生活/爱足球/ACMer

排序:
默认
按更新时间
按访问量

[Link-Cut Tree] 学习笔记

Link-Cut Tree 简称LCT,动态树问题要求我们维护一个由若干棵子节点无序的有根树组成的动态森林。LCT使用了类似树链刨分的轻重边剖分,把树上的边分为实边和虚边,并使用Splay来维护每一条实路径。LCT的各种基本操作的复杂度都是均摊Log(n)。但是常数因子会比树链剖分大。 基本操作...

2018-09-02 17:09:54

阅读数:19

评论数:0

【Splay】学习笔记

Splay伸展树是一种特殊的BST,Splay能在Log(n)的均摊时间复杂度内完成插入、查找,删除等基本操作。 基本结构 struct SplayTree { int val,sz,cnt;//val为值 sz为子树大小,cnt此位置的重叠节点个数 int s[2],f;/...

2018-08-29 22:00:40

阅读数:84

评论数:0

无向图的割点与桥

定义 对于无向连通图G=(V,E),Tarjan算法可以在线性时间内求出无向图的割点和桥。 割点:对于x∈V,如果删除某个点x,图的联通分量增多(G分裂为两个或者两个以上的子图),则x为割点。 桥    :对于e∈E,如果删除e,G分裂成两个不相连的子图,则称e为桥或割边。 时间戳(T[i...

2018-08-28 21:57:57

阅读数:195

评论数:0

【可持久化线段树】

线段树   线段树是一种特殊的BST,用节点代表区间,能够在logN时间内解决许多区间相关的问题,如区间最值,区间和,区间修改等。   可持久化   可持久化让我们能够查询数据结构历史版本,并且通过利用之前的历史版本节省空间开销。   可持久化线段树   线段树的每次修改都会至多修改...

2018-08-25 21:47:21

阅读数:278

评论数:0

Treap

Treap是什么 Treap是一棵同时满足二叉搜索树和堆性质的树,是平衡二叉搜索树,可以在O( log(n))的期望复杂度内完成各个操作。 基本结构 Treap的节点中比普通的BST多了一个供堆属性使用的随机权值,保证满足堆性质。 struct data{ int l,r,v,s...

2018-08-12 12:56:43

阅读数:119

评论数:0

【矩阵树定理 学习笔记】

矩阵树定理的作用? 主要用来解决生成树计数问题   准备 对于给定的无向图G 定义度数矩阵D[G] 满足:当i≠j时,dij=0;当i=j时,dij等于vi的度数。 定义邻接矩阵A[G] 满足:当i≠j时,如果节点i和节点j之间存在边,dij=1;当i=j时,dij = 0。 定义给...

2018-08-08 11:33:40

阅读数:157

评论数:0

回文自动机 学习笔记

  Manacher解决的问题:O(n)时间内求出字符串以每个点为中心时的最长回文长度   1.对字符串的预处理   一般为了避免无限制的匹配下去,会在开头和结尾加入未在原字符串中出现的‘#’   一般为了方便判断,一般在原字符串的字符之间加入未在原字符串中出现的‘#’,   新串由两部分...

2018-07-26 19:06:31

阅读数:332

评论数:0

成功的背后

转载:来自CSDN第一名博主:http://blog.csdn.NET/phphot/article/details/2187505 成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过去,才成就了一个个走向成功的普通人。   凌晨两点半,早已习惯了一个人坐在电脑前的我,望着屏幕...

2017-04-26 16:36:31

阅读数:770

评论数:0

有一种感动叫ACM(记WJMZBMR在成都赛区开幕式上的讲话)

各位选手,各位教练,大家好,我是来自清华大学交叉信息学院的陈立杰,今天很荣幸站在这里代表全体参赛选手发言。对于我来说,这是我第一次正式参加ACM的比赛。不过我跟ACM之间的缘分,大概在很早的时候就已经存在了。      我还依稀记得,在我初三的时候,晚上我的一个好朋友在用手机跟妹子聊天,而我在用...

2017-03-14 05:29:33

阅读数:707

评论数:0

【最长公共子序列(LCS)】

问题描述 给出两个字符串A,B求两个的字符串的最长公共子序列,求得的子序列可以不连续,只要保证子序列的元素相对的相对顺序和AB都保持一致就可以。 解决方案 DP[i][j]代表  A串从起点到i位置的字串 和  B串从起点到j位置的字串 的LCS DP递推式是显然的 当A[i] == B...

2018-11-16 22:17:51

阅读数:6

评论数:0

【BZOJ-3282 Tree】动态树

动态树模板题   #include<iostream> #include<cstdio> #include<cstring> #include&...

2018-09-02 17:12:45

阅读数:50

评论数:0

判断点与多边形的位置关系

struct point { double x,y; point() {} point(double x_, double y_) { x = x_; y = y_; } friend point operator...

2018-08-30 21:47:24

阅读数:84

评论数:0

【HDU - 6194】后缀数组+线段树

题意:给出一个只有小写字母的串,求至少出现k次的Substring有多少个。   思路:先求出height数组,然后枚举长度为k的段,查询区间的height(ST表或者线段树),他们的LCP和就是答案,但是这样会算出长度为k+1的和长度为k-1的串,所以要减去这一部分   #includ...

2018-08-29 19:47:11

阅读数:55

评论数:0

O(N)构造K叉哈夫曼树

构建K叉的哈夫曼树和构建二叉哈夫曼树类似,都需要每次选出节点值最小的K个,组成新节点 我们使用优先队列(或者其他数据结构)的复杂度为nlogn,这里选用两个有序数组维护最小值的方式来优化 每次从a,b两个数组中选择最小的k个,将他们的和加到b的尾部,这个过程能够保证a,b数组都是从小到大的 ...

2018-07-27 10:26:19

阅读数:542

评论数:0

Codeforces 808G(KMP+DP)

转移的时候要注意对于S[0--i]后缀的最长匹配 如果最长匹配为整个T串,那么就可以开始转移,转移时新出现的T可以从上一个完整的T的公共前缀的next转移加1过来,这就相当于用上一个T中的后缀作为当前T的前缀,不断求NEXT求出一个最大的转移,不断执行。 #include &l...

2018-07-26 16:11:28

阅读数:40

评论数:0

欧拉函数

long long phi(long long x) { int res = x,a = x; for(int i=2;i*i<=a;i++) { if(a%i==0) { res = res/...

2018-07-22 12:58:51

阅读数:17

评论数:0

HDU - 1394(权值线段树)

本题就是求逆序对,因为数据范围比较小,可以不用离散化,直接用权值线段树就可以了 权值线段树就是在线段树里记录每个数出现的次数,而不是记录位置+值,   #include <bits/stdc++.h> using namespace std; c...

2018-07-22 12:13:30

阅读数:263

评论数:0

利用Python+selenium实现小米商城抢购代码

selenium可以方便进行Web测试,并且支持多种语言。因此我们选用selenium工具,实现简单的小米商城的商品抢购(其他购物平台类似)。 首先需要安装一款浏览器,selenium支持大多数主流浏览器如Chrome,Firefox等,这里使用Firefox。 然后下载selenium工具,...

2018-06-08 16:29:35

阅读数:4977

评论数:1

Highways POJ - 2485

最小生成树最大边#include <cstdio> #include <cstring> #include <algorithm> #include &amp...

2018-05-24 10:30:29

阅读数:88

评论数:0

2018西安全国邀请赛总结

2017陕西西安全国邀请赛总结     周六上午前往西工大,出发的比较早,到达西工大时还没到中午,去报道完,在西工大吃了午饭,之后九个人一起回了酒店。酒店只有一间空房,九个人挤在一间房,没能休息好,鸽了下午的开幕式。     热身赛第一题是个几何,水题,直接求多个梯形的面积和就可以。想了想,我直接...

2018-05-23 23:29:16

阅读数:218

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭