主席树的综合运用题. 前置芝士 1. "可持久化线段树" :~~其实就是主席树了~~. 2. "LCA" :最近公共祖先,本题需要在$\log_2N$及以内的时间复杂度内解决这个问题. 具体做法 主席树维护每个点到根节点这一条链上不同树出现的次数,然后发现这个东西是可以相减的,于是这条链上每个数出现 ...
分类:
其他好文 时间:
2020-01-31 21:02:56
阅读次数:
94
原文:https://www.cnblogs.com/fengyao/archive/2010/06/14/1749383.html 调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHea ...
分类:
编程语言 时间:
2020-01-30 14:25:45
阅读次数:
103
HashTable是早起java提供的基于hash表的实现,不允许存放null键和值,是同步的,影响开销,不太被推荐。 HashMap行为上和HashTable差不多,不是同步的,允许键和值为null,通过put(),get()来存取数据。 一、默认属性值: 这里摘出了重要属性的默认值: // 默认 ...
分类:
编程语言 时间:
2020-01-30 12:38:45
阅读次数:
94
一句话题意:树上路径带修第k大 考虑树上不带修第k大怎么做的: 维护一个前缀主席树,然后$u$, $v$, $LCA(u, v)$和$fa[LCA(u, v)]$四个主席树相减即可 这题这么做就会出现一个问题 就是如果修改u的线段树的值,那么所有位于u的子树的线段树都要进行修改 如何高效修改子树内的 ...
分类:
其他好文 时间:
2020-01-27 19:04:24
阅读次数:
60
6102 "天天爱跑步" 毒瘤题,神仙树上上差分。 先推出两个式子 $dep[u] = dep[i] + w[i]$, $dep[u] dep[lca] = w[i] dep[i]$ 开桶差分。 因为差分会导致统计子树时会有子树外的值,所以要用前缀作差的形式来消除影响。 cpp include in ...
分类:
其他好文 时间:
2020-01-25 16:41:53
阅读次数:
74
不知道为什么会RE。。 待补 思路:链上求u和v两点路径第k小利用lca就转变为了 U+V LCA FA(LCA) 上的第k小,这因为每个点的主席树的root是从其父转移来的。可以用树链剖分求lca;在dfs序上建立主席树将树上问题转变为区间问题,询问的时候用主席树求区间k小值。 终于能写出这种题了 ...
分类:
其他好文 时间:
2020-01-23 12:35:32
阅读次数:
88
笛卡尔树是一棵二叉树,每个节点的编号满足二叉搜索树的性质,即二叉树的中序遍历是原数列,每个节点的权值满足堆的性质,也就是说,$Treap$就是笛卡尔树 在笛卡尔树上两个点的$LCA$就是这一区间的最值 用增量法来建树,维护一个单调栈,栈内元素为右子树链 因为每个节点最多进栈出栈一次,所以时间复杂度是 ...
分类:
其他好文 时间:
2020-01-22 23:59:33
阅读次数:
124
题目 "传送门" 思路 首先我们解决第一个问题 怎么使值最大? 这个可以通过公式变形来解决 $ans=\sum_{i=1}^{n}(dep_i+dep_{p_i} 2 dep_{lca_{i,p_i}})=2 \sum_{i=1}^{n}dep_i 2 \sum_{i=1}^{n}dep_{lca_ ...
分类:
其他好文 时间:
2020-01-20 22:32:21
阅读次数:
57
int lca(int x,int y) { if(de[x]<de[y]) swap(x,y); int d=de[x]-de[y]; for(int i=log2(d);i>=0;i--) { if(d&(l<<i)) { x=fa[x][i]; } } for(int i=log2(n);i> ...
分类:
其他好文 时间:
2020-01-20 20:36:20
阅读次数:
65
Gym - 100015C City Driving 题意:给你一个n个点的树再加上一条边,求询问的两个点的最短路 题解:去掉形成的环中的一条边,这样就变成了一个普通的求树上最短路,求得A1,然后求u到删掉边的u,v到删掉边的v,再加上删掉边的权值,求得A2,求v到删掉边的u,u到删掉边的v,再加上 ...
分类:
其他好文 时间:
2020-01-19 21:59:34
阅读次数:
71