随笔分类 - -----数据结构 6.splay
摘要:题目链接:Codeforces Round #424 (Div. 2) E. Cards Sorting 题意: 将n个数放进一个队列,每次检查队首,看看是不是队列中最小的数,如果是就扔掉,如果不是就放到队尾。 这样直到队列为空,为需要操作多少次。 题解: 考虑用两个指针模拟,最开始now指针指向第
阅读全文
摘要:题目链接:hdu 4453 Looploop 题意:具体看看图,都是splay的基本操作,当然不用splay也可以,这题有特殊性。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespace
阅读全文
摘要:题目链接:hdu 4441 Queue Sequence 这题看了题解写的,题解传送门 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 #define ls l,m,rt<<1 4 #define rs m+1
阅读全文
摘要:题目链接:hdu 3487 Play with Chain 题意: cut a b c: 将a到b区间剪切下来,放在第c位置的后面。 flip a b: 翻转a到b区间 题解: 第一个操作,选通过旋转,然后使a到b区间变成根的右儿子的左儿子,然后剪掉。 再找到c+1的位置,接上。 第二个操作,区间标
阅读全文
摘要:题目链接:hdu 3436 Queue-jumpers 题意: TOP是将某个人移至队首 QUERY是某个人的位置 RANK就是找出第K位是多少 题解;splay来维护。 先离散化,然后记录每个区间的信息,然后用splay维护一下。 top:先删除再插到队首。 query:找到树中对应的节点,然后旋
阅读全文
摘要:题目链接:hdu 3726 Graph and Queries 题意: 最开始给你n个点,每个点最开始有一个权值,并且都是独立的,现在给你m条边,表示对应的两个点是连接的。 现在有三种操作: Q x k,表示询问与x这个点联通的所有点中第k大的权值。 D x,表示删除第x条边。 C x y,表示改变
阅读全文
摘要:题目链接:hdu 1890 Robotic Sort 题意: 给你n个数,每次找到第i小的数的位置,然后输出这个位置,然后将这个位置前面的数翻转一下,然后删除这个数,这样执行n次。 题解: 典型的splay区间翻转+删点。 我们把数据排序,然后记录一下每个数原来的位置,然后splay建树的时候用原来
阅读全文

浙公网安备 33010602011771号