"题目链接" cpp / 序列上的主席树 某点是利用前一个点的根建树 同理 树上的主席树 某个节点可以利用其父节点(is unique)的根建树 排名可以利用树上前缀和求得: 对于(u,v),w=LCA(u,v),u v这条链的值就是 sum "u root]+sum[v root] sum[w r ...
分类:
其他好文 时间:
2018-02-12 11:10:30
阅读次数:
185
天天爱吃鸡 如果我们以子弹为研究对象,来寻找合法的木板,问题将会变得很麻烦,不妨反过来考虑,每一个木板只会对第s个打到他的子弹有贡献,于是问题就变成了去检查讯第k大的数字,主席树维护即可。 1 #include<bits/stdc++.h> 2 using namespace std; 3 cons ...
分类:
其他好文 时间:
2018-02-11 22:36:15
阅读次数:
185
……因为T点忘记还要+n所以选小了所以WA了一次 注意!题目中所给的时间是一边闭一边开的区间,所以读进来之后先l++(或者r 也行) 线段树优化建图,很神。(我记得还有个主席树优化建树的?)首先考虑暴力建图:s向每个强盗i连(s,i,1,c[i]),每个时间j向t连(j,t,1,0),每个强盗向所有 ...
分类:
其他好文 时间:
2018-02-11 21:28:37
阅读次数:
178
在SPOJ的AC数量似乎有超越bzoj的趋势... (毕竟bzoj做了不到20道题不是_(:з」∠)_ ...
分类:
其他好文 时间:
2018-02-10 17:00:37
阅读次数:
172
hash值建主席树。 垃圾题面没有熟虑范围害我MLE——>RE。 By:大奕哥 ...
分类:
其他好文 时间:
2018-02-10 12:53:03
阅读次数:
143
"洛谷题目传送门" %%%天平巨佬和山楠巨佬%%% "他们的题解" 思路分析 具体思路都在两位巨佬的题解中。这题做法挺多的,我就不对每个都详细讲了,泛泛而谈吧。 首先kruskal把最小生成树弄出来,因为要求次小生成树。至于为什么次小一定只在最小的基础上改变了一条边,我也不会证。。。。。。~~打表找 ...
分类:
其他好文 时间:
2018-02-08 13:46:04
阅读次数:
169
题目 传送到洛谷QWQ 分析 把求区间第k大的改一改就ok了。 代码 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N=500010; 4 int root[N*40], ls[N*40], rs[N*40], sum[N ...
分类:
其他好文 时间:
2018-02-07 19:59:11
阅读次数:
147
花了一个星期,总算把这一道该死的毒瘤题做完了。 这道题有很多种解法,我是用优先队列+主席树。 首先每一个区间的和,可以表示为两个前缀和之差。 我们显然可以知道,每一次找到的那个最大值必然在以一个点为最后一个点的区间之内。 所以我们可以把每一个点为最后一个点的最大值的区间求出来,先打入队列。 然后每一 ...
分类:
其他好文 时间:
2018-02-05 23:24:43
阅读次数:
217
4299: Codechef FRBSUM Description 数集S的ForbiddenSum定义为无法用S的某个子集(可以为空)的和表示的最小的非负整数。 例如,S={1,1,3,7},则它的子集和中包含0(S’=?),1(S’={1}),2(S’={1,1}),3(S’={3}),4(S’ ...
分类:
其他好文 时间:
2018-02-05 14:24:08
阅读次数:
163
Description 给一个长度为n的序列a。1≤a[i]≤n。m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r l+1)/2。如果存在,输出这个数,否则输出0。 Solution 用主席树处理即可, 由于按值建树,其实只要不断判断左右子树子节点数量大于(r l ...
分类:
其他好文 时间:
2018-02-04 18:08:08
阅读次数:
165