![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SPOJ
lemonoil
竞赛党一枚
展开
-
SPOJ QTree6 [树链剖分]
啊啊啊!!! maintain的时候忘记+1s+1,于是就。。。累死了,只剩下最后一个Qtree7. 这道题与上道题类似,关键在于路径上面判定同色,关键点在findpath上,至于线段树,我又一次惊叹于线段树在序列问题上近乎无敌的维护效率。中间的mid与mid+1的判定神来之笔。 看来我就是一只菜鸡。#include<deque> #include<vector> #include<cstdi原创 2017-07-11 08:06:03 · 736 阅读 · 0 评论 -
SPOJ QTree5 [树链剖分]
感觉之前拿点分治水过心里过意不去,。。。。。mdzz,我还是打了一份树链剖分的code,具体方法与QTree4相同(详见代码),维护线段树的合并时的值。#include<bits/stdc++.h> #define mid ((l+r)>>1) #define pf push_front using namespace std; const int N=1e5+1e2; const int INF=原创 2017-07-08 10:45:53 · 568 阅读 · 0 评论 -
SPOJ QTree5 [点分治][堆]
点分治模板题,我有个max细节没注意到,root一直取错,小数据AC,大数据就TLE了。。。。找了半天才发现。。。 MD 点分治+堆维护路径值(与QTree4很像)。 code#include<algorithm> #include<cstring> #include<cstdio> #include<cmath> #include<queue> const int N=200220; usi原创 2017-07-08 07:39:14 · 744 阅读 · 0 评论 -
SPOJ QTree4
4.5hours的艰苦奋斗。。。。。 好想爆粗口。。。堆转手写set,树链剖分上加点入set,线段树维护set信息。。我想死。。。#include<bits/stdc++.h> const int N=100020,inf=1<<29; using namespace std; char cmd[8]; struct Set{ priority_queue<int> a,b; vo原创 2017-07-07 14:21:10 · 418 阅读 · 0 评论 -
SPOJ QTree again!
直接上第一道题的模板, 关键是转化颜色到具体数值的思想很重要。 详细关于黑白分析的细节看代码。 吐槽一句:样例乱打都能过。。。#include<algorithm> #include<cstring> #include<cstdio> #include<cmath> #define clr(x) memset((x),0,sizeof(x)) const int N=200020,inf=0x原创 2017-07-07 14:16:02 · 222 阅读 · 0 评论 -
SPOJ QTree2
仍然是上一道题的模板, 这道题重点是要学会倍增来查找路径上的点。即kfa()#include<algorithm> #include<cstring> #include<cstdio> #include<cmath> #define clr(x) memset((x),0,sizeof(x)) const int N=200020,inf=~0U>>1; using namespace std;原创 2017-07-07 08:14:23 · 429 阅读 · 0 评论 -
SPOJ QTree 1
树链剖分+线段树裸题,注意边权维护的细节。#include<algorithm> #include<cstring> #include<cstdio> #include<cmath> #define clr(x) memset((x),0,sizeof(x)) const int N=200020,inf=~0U>>1; using namespace std; char cmd[10]; stru原创 2017-07-07 08:11:46 · 482 阅读 · 0 评论 -
SPOJ QTree系列【长期更新】
SPOJ QTree1树链剖分版LCT版SPOJ QTree2树链剖分版LCT版SPOJ QTree again!树链剖分版LCT版SPOJ QTree3主席树版本SPOJ QTree4树链剖分版LCT版SPOJ QTree5树链剖分版点分治版LCT版SPOJ QTree6树链剖分版LCT版SPOJ QTree7树链剖分版LCT版原创 2017-07-07 14:29:55 · 627 阅读 · 0 评论 -
SPOJ QTree7 [SET][树链剖分]
题目传送门为什么突出了SET呢?因为用了set后就可以用端点写法O(1)O(1)维护路径。。。。然后花费lognlog^n的时间插入删除。。。。。 还是感觉时间复杂度很GG啊,一大堆大神拿着LCT就开刷。。。不行了,我要刷QTree的二周目了,就叫拿着LCT拯救世界。这道题相比Qtree6没什么区别,就查找一个max,用Qtree的线段树写法就行了,剩下的用Qtree6的思路就AC了。 一个l打原创 2017-07-12 09:42:43 · 540 阅读 · 1 评论 -
SPOJ GSS1 [线段树]
Can you answer these queries I题目连接题解普普通通的线段树区间合并,维护左、右、本身的值即可#include <iostream> #include <cstdio> #include <algorithm> #define INF 0x3f3f3f3f using namespace std; struct node{ int sum,原创 2017-07-20 21:27:31 · 348 阅读 · 0 评论