![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 80
qian99
这个作者很懒,什么都没留下…
展开
-
zoj 3765 Lights(伸展树)
题意:最开始有N个灯,有Q个操作。操作有一下几种类型:①查询区间[L,R]中灯的状态为status的所有灯的gcd②在第i位后插入一个值为val,状态为status的灯③删除第i个灯④第i个灯是开的那么关掉,否则打开⑤修改第i个灯的值。思路:用伸展树暴力点写就行了。用数组记录当前区间状态为0和1的gcd的值。对于0结点,这些值赋值为-1就行了,在gcd中修改一下,对-1进行处理就行了。剩下的都原创 2014-03-02 17:29:30 · 1763 阅读 · 1 评论 -
UVA 12424 Answering Queries on a Tree (树链剖分)
题意:给出一棵树,有两种操作,一种是将原创 2014-05-05 19:09:33 · 709 阅读 · 0 评论 -
UVA 11983 Weird Advertisement (线段树+矩形面积并)
题意:给出平面上的n个矩形,求被原创 2014-05-05 10:44:10 · 694 阅读 · 0 评论 -
poj 1177 Picture(线段树+矩形周长并)
题意:给出平面的n个矩形,原创 2014-05-05 14:40:30 · 758 阅读 · 0 评论 -
[2009国家集训队]小Z的袜子(hose)(莫队算法)
之前做的一道CF题就是这样的,这题还要简单一点,把查询分块,不同块的按块排序,同一块的按右区间排序。每次把当前的区间[L,R]调整到目标区间[L',R'],然后计算就行了。代码:#include#include#include#include#include#include#include#include#include#include#include#def原创 2014-03-25 15:21:07 · 723 阅读 · 0 评论 -
UVA 11996 Jewel Magic(伸展树+字符串hash)
题意:原创 2014-05-09 18:05:04 · 1276 阅读 · 0 评论 -
hdu 4351 Digital root(线段树区间合并)
题意:给出n个数,m组询问,每次原创 2014-04-25 11:51:06 · 742 阅读 · 0 评论 -
hdu 4358 Boring counting(dfs序+莫队算法)
题意:给出一棵树,每个节点有一个权值,有q个查询,原创 2014-04-25 14:41:32 · 746 阅读 · 0 评论 -
hdu 4812 D Tree(分治)
题意:给出n个点的树,每个结点有权值,求原创 2014-05-11 17:06:00 · 1732 阅读 · 0 评论 -
zoj 3533 Gao the String I(伸展树+字符串hash)
题意:给出一个长度为n的串,有原创 2014-05-13 22:49:06 · 1054 阅读 · 0 评论 -
zoj 3612 Median(Treap)
题意:给出两种操作,一种是在集合中添加一个数,另一种是删除一个数,每次操作如果合法,那么输出中位数。思路:想到用Treap搞就直接写了,貌似方法还挺多的?每次在Treap中查询第k大就行了。对于偶数要查两个数,还是挺好写的吧。。代码:#include#include#include#include#include#include#include#include#incl原创 2014-04-02 20:15:54 · 629 阅读 · 0 评论 -
POJ 1151 Atlantis (线段树求矩形面积并)
题意:给出n个矩形,原创 2014-05-03 19:22:51 · 685 阅读 · 0 评论 -
LA 5031 Graph and Queries(Treap)
思路大概就是把操作倒着做,先生成最终的图,每个连通块建一棵treap,删边变成添边,如果连接的两个连通块本来不连通,那么就把两个树合并。修改的操作转化成删除一个点再添加一个点。查询就直接查询就好了。操作比较多,感觉有些地方不太好想,看了看白书的代码,有些细节的地方才想明白。。。代码:#include#include#include#include#include#incl原创 2014-03-03 20:14:55 · 775 阅读 · 0 评论 -
CF 339D - Xenia and Bit Operations(线段树)
由于点的个数为2^n,如果把每一步操作列出来,可以发现这是一颗满二叉树,因此,可以使用线段树维护每个操作后的值,再用一个节点来记录操作的类型,然后直接修改就行了。代码:#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f原创 2014-03-04 17:41:09 · 1159 阅读 · 0 评论 -
hdu 2475 Box(伸展树)
题意:有一些盒子,盒子里可以放盒子,给出最初的盒子的状态,有两种操作,第一种是将某一个盒子移动到另一个盒子,第二种是查询某个盒子最外边的盒子的编号。思路:这题看题解看了好久,终于理解了,我真是好弱。。。将给出的盒子建成一些树,盒子中的盒子是它的子树,然后通过dfs可以对每个点编号,第一次访问时为x,第二次为x+n,这样最后就形成了一个序列,[x,x+n]之间为盒子x里的盒子的状况,移动盒子就相原创 2014-03-05 14:48:48 · 845 阅读 · 0 评论 -
zoj 3633 Alice's present(离线+线段树)
题意:给出区间[L,R],从右向左检查,找到第一个重复的值。思路:首先把每个值离散化,将查询按R排序保存。依次把1~n中的数x插入线段树,令v=num[i],用pre[v]表示上一次出现的v这个值的位置,用last[v]表示再上一次出现的位置。把last[v]赋值为0,pre[v]的值赋值为1,pre[v]=x。这样,对于每个以i为右端点的查询,第一个重复的就是这个区间中最右边的1的位置,这个原创 2014-03-19 18:19:06 · 571 阅读 · 0 评论 -
zoj 3641 Information Sharing(并查集)
题意:给出n个操作,操作有的三种:①添加一个人,这个人携带了一些信息。②分享某两个人的信息。③查询某个人所拥有的不同的信息的个数。思路:其实就是个并查集,用个set来记录每个人所拥有的信息,当两个人分享信息时,将这两个人合并,把一个人的信息都添加到另一个人上面,然后把这个拥有的信息删除。代码:#include#include#include#include#incl原创 2014-03-19 18:49:35 · 835 阅读 · 0 评论 -
SGU 336 Elections (离线+线段树)
题意:原创 2014-05-01 19:51:11 · 915 阅读 · 0 评论 -
SPOJ 3261. Race Against Time(RACETIME)(分块)
题意:原创 2014-05-02 09:38:36 · 901 阅读 · 0 评论 -
zoj 3597 Hit the Target! (线段树)
题意:有n个枪和m个原创 2014-05-04 19:12:08 · 709 阅读 · 0 评论 -
hdu 4052 Adding New Machine(线段树+扫描线)
题意:给出一个W×H的矩形,有些地方有原创 2014-05-03 23:25:24 · 768 阅读 · 1 评论 -
hdu 4441 Queue Sequence(伸展树)
题意:模拟一个队列序列,原创 2014-06-23 14:59:49 · 790 阅读 · 0 评论 -
hdu 4453 Looploop(伸展树)
题意:给出一个环形序列,并原创 2014-07-01 20:11:48 · 728 阅读 · 0 评论 -
hdu 4871 Shortest-path tree(最短路+点分治)
题意:给出一个n个点,m条边的图,先求最短路,使得原创 2014-07-24 09:06:46 · 1545 阅读 · 2 评论 -
zoj 3813 Alternating Sum(线段树)
题意:原创 2014-09-09 20:49:36 · 728 阅读 · 0 评论 -
CF 461C - Appleman and a Sheet of Paper (树状数组)
题意:原创 2014-08-27 09:48:42 · 978 阅读 · 0 评论 -
hdu 5039 Hilarity(dfs序 + 线段树)
题意:给出一颗树,有原创 2014-09-22 15:13:13 · 947 阅读 · 0 评论 -
CF 459D - Pashmak and Parmida's problem (树状数组)
题意:给出n个数ai,定义f(l,r)原创 2014-08-16 15:34:45 · 789 阅读 · 0 评论 -
CF 369E - Valera and Queries(树状数组)
题意:给出n原创 2014-09-03 08:45:39 · 748 阅读 · 0 评论 -
hdu 5052 Yaoge’s maximum profit(树链剖分)
题意:给出一颗树,每个节点有一定价原创 2014-09-27 18:29:51 · 1404 阅读 · 6 评论 -
hdu 4918 Query on the subtree(树分治 + 树状数组)
题意:给出一颗n个原创 2014-09-17 21:33:22 · 1750 阅读 · 0 评论 -
bzoj 2152 聪聪可可(点分治)
最近原创 2014-09-30 20:44:12 · 724 阅读 · 0 评论 -
hdu 4670 Cube number on a tree(点分治)
题意:给出一颗树,每个点有一个权值,求原创 2014-10-02 10:03:44 · 875 阅读 · 0 评论 -
hdu 4942 Game on S♂play(线段树)
题意:给出一颗二叉树,每个节点有一个权值,原创 2014-08-13 14:41:34 · 827 阅读 · 2 评论 -
hdu 4913 Least common multiple(线段树)
题意:给出n个数每个数以2^ai * 3^bi的原创 2014-08-11 19:22:06 · 1028 阅读 · 0 评论 -
hdu 4787 GRE Words Revenge(分块+AC自动机)
题意:有n个操作,一个是学习一个原创 2014-06-16 14:07:21 · 1041 阅读 · 0 评论 -
Uva 1471 Defense Lines(线段树)
题意:给出一个长度为n的序列,原创 2014-06-16 12:02:02 · 826 阅读 · 0 评论 -
hdu 4866 Shooting(主席树)
题意:给出n个线段,m次射击,每次原创 2014-07-26 15:36:41 · 1520 阅读 · 0 评论 -
hdu 4867 Xor(线段树)
题意:给出原创 2014-07-27 15:25:55 · 1663 阅读 · 3 评论 -
hdu 3854 Glorious Array(线段树or树状数组)
题意:n个位置,每个原创 2014-06-18 17:34:46 · 1424 阅读 · 0 评论