HDU 4866:Shooting 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4866 题目大意:给出$n$条平行于$x$轴的线段,每次查询给出一个横坐标,求该位置上方的前$k$($k$随询问变化)个线段的高度之和。 主席树 代码如下: ...
分类:
其他好文 时间:
2017-05-16 19:20:09
阅读次数:
212
2434 思路: 构建ac自动机; 抽离fail树; 根据字符串建立主席树; 在线处理询问; 询问x在y中出现多少次,等同于y有多少字母的fail能走到x; 1a,hahahahah; 代码: ...
分类:
其他好文 时间:
2017-05-16 12:56:27
阅读次数:
246
感觉这个题的思想还是很妙的,刚开始看这道题的时候大概会向一些树的算法比如树链剖分或是主席树维护深度之类的方向去想,但是我们考虑它实际上是一个二维数点的问题,由于是子树的修改,我们很自然的会想到用DFS序来搞,那么对于一个子树深度不超过定值的所有点就被包含在了一个矩形中,这样我们就可以用KD_tree ...
分类:
其他好文 时间:
2017-05-15 19:38:25
阅读次数:
229
看到题目感觉有点坏... 区间第k大,插入某个数...看起来怎么那么像主席树...、 tmd我不会 然后看看分类....堆?花了30min乱打一波优先队列...突然想起来stl不能直接输出q[k]。。。 然后转换思路...嗯,从树的角度出发...突然想起某道题...戳我 这样就变成了模板提...不过 ...
分类:
其他好文 时间:
2017-05-13 13:25:05
阅读次数:
171
我怎么控制不住自己又写了个数据结构啊……真是的…… 其实我是想练CDQ分治的……结果忍不住又写了个主席树。 首先看看不动态的逆序对咋做?树状数组嘛。 那么删除咋搞?就是考虑贡献,把它前面比他大的,后面比他小的减去…… 诶?带修改主席树?我……我好像才写过……? 1 #include<bits/std ...
分类:
其他好文 时间:
2017-05-11 22:36:18
阅读次数:
198
昨天在写带修改主席树的时候,咸鱼zcysky发现自己似乎根本不会写主席树 于是正好找个空复习下…… 主席树的原理不用我扯了,主席树为啥能求k大,大概在它可以用历史版本存下区间的前缀和,求的时候差分下就能提出我要求的区间。 不过这么搞的话不要忘了离散化。 1.kth number 就是上面的裸题,不要 ...
分类:
其他好文 时间:
2017-05-10 13:12:46
阅读次数:
239
题目链接:https://vjudge.net/problem/SPOJ-DQUERY 题意:给定数列,q次询问,问区间内不同数字的个数。 可以用主席树,但是还有更好写的办法。 离线存下所有的询问,按照询问右端点从小到大排序。 用树状数组标记“某个值在区间[1,r]中出现的最后的位置”。这样可以将r ...
分类:
编程语言 时间:
2017-05-10 13:08:46
阅读次数:
154
先将权值离散。 显然可以对于每个结点建一棵权值线段树存这个点到根结点的路径上的点权,询问时在线段树上二分,但这样时间是O(n2log2n)的。 然后想到用主席树优化,时间复杂度O(n*log2n)。 代码: 1 #include<iostream> 2 #include<cstdio> 3 #inc ...
分类:
其他好文 时间:
2017-05-04 18:33:02
阅读次数:
194
题意:给定一个序列,求给定区间的第 k 小的值。 析:就是一个主席树的裸板。 代码如下: ...
分类:
其他好文 时间:
2017-05-04 00:05:14
阅读次数:
204
Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10682 Accepted Submission(s): 3268 P ...
分类:
其他好文 时间:
2017-05-02 10:10:44
阅读次数:
150