splay
Dan__ge
Today is difficult,tomorrow is more difficult,but the day after is beautiful.
展开
-
HDU 3487 splay
点击打开链接题意:给一个1到n的序列,然后有两种操作,问最后序列的样子思路:两个操作分别是反转和剪切后插入,全部都是splay的精典操作,比较简单#include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long ull原创 2016-09-09 12:54:57 · 352 阅读 · 0 评论 -
BZOJ 1500 splay
点击打开链接题意:中文思路:就是几个splay的操作,然后最后一个操作可以利用线段树区间合并的思想,然后还有就是在反转操作的时候,左右的最大值也需要反转就是代码中的L和R#include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned l原创 2016-09-07 21:22:19 · 375 阅读 · 0 评论 -
BZOJ 1269 splay
点击打开链接题意:中文题目思路:直接就是splay的几个操作,注意一下光标的位置对于增加和删除的影响就好了#include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long ull;const int inf=0x3f原创 2016-09-07 19:36:00 · 444 阅读 · 0 评论 -
UVA 11996 splay
点击打开链接题意:给一个序列,还有四个操作,1是在第p个字符后面加入c,2是删除第p个字符,3是区间反转,4是询问p1和p2开头的字符串的lcp思路:除了正常的splay以外,需要多维护一个哈希值,然后二分长度比较哈希值即可#include #include #include #include #include using namespace std;typedef long原创 2016-09-07 18:33:11 · 398 阅读 · 0 评论 -
UVA 11922 splay
点击打开链接题意:给n个数,1到你,然后每个操作a,b是将a到b的所有数翻转后添加到末尾思路:白书的例题,代码参考这位大神的#include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long ull;const int原创 2016-09-06 14:02:38 · 373 阅读 · 0 评论 -
POJ 3580 splay
点击打开链接题意:给个序列,然后有六种操作,分别对应一个功能思路:splay的各种应用,两个标记,一个翻转的一个增加值的,模版参考kuangbin大神#include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long u原创 2016-09-07 15:38:44 · 441 阅读 · 0 评论 -
POJ 3468 splay
点击打开链接题意:给一个序列,Q是询问a到b的所有数的和,C是将a到b的所有的数的值增加c思路:如果用线段树来写的话,十分简单,但是为了练习splay,照着kuangbin大神的做法谢了一遍,没什么特别的,就是将更新和询问的操作全部旋转到根的右儿子的左儿子#include #include #include #include #include using namespace st原创 2016-09-07 11:05:37 · 353 阅读 · 0 评论 -
BZOJ 1588 splay
点击打开链接题意:中文思路:练习splay,没什么好说的,模版参考kuangbin大神#include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long ull;const int inf=0x3f3f3f3f;co原创 2016-09-07 09:59:43 · 431 阅读 · 0 评论 -
HDU 3436 splay
点击打开链接题意:给一个1到n的序列,然后有三种操作,每次的rank及query输出某个值思路:题目需要将某个数放到最前面,用splay来完成,对于top,将这个节点旋转到根节点,删除后加到最前面,然后query和rank的都比较简单,代码参考kuangbin大神#include #include #include #include #include using namespac原创 2016-09-09 19:00:34 · 627 阅读 · 0 评论 -
HDU 1890 splay
点击打开链接题意:将n个数排序,排序要遵循的是反转操作,每次输出需要反转的位置思路:因为要反转那么splay就可以了,然后注意的是节点对应序列的位置,然后每个数的实际位置记录一下,每次将这个数旋转到根节点,然后左儿子的size+当前旋转的数就是结果,然后将根节点删除#include #include #include #include #include using namespa原创 2016-09-08 16:07:37 · 423 阅读 · 0 评论