随笔分类 -  数据结构

摘要:Description 给出一个长为n的字符串$S$和一个长为n的序列$a$ 定义一个函数$f(l,r)$表示子串$S[l..r]$的任意两个后缀的最长公共前缀的最大值。 现在有q组询问,每组询问给出$L,R,x$ 你需要找到一个子串$S[l,r]$满足$[l,r]\subset[L,R]$且$f( 阅读全文
posted @ 2019-06-30 22:31 BAJim_H 阅读(318) 评论(0) 推荐(0)
摘要:Description 点数 define fo(i,a,b) for(int i=a;i=b; i) typedef long long LL; const int N=100005; const int mo=998244353; using namespace std; int n; LL s 阅读全文
posted @ 2019-06-26 20:25 BAJim_H 阅读(335) 评论(0) 推荐(0)
摘要:Description 给出一个长度为n的序列a和一个整数p 有m组询问,每组询问给出一个区间$[l,r]$ 你需要给出下面这个过程的结果 $n\leq 10^6$ $m define fo(i,a,b) for(int i=a;i=b; i) typedef long long LL; const 阅读全文
posted @ 2019-06-19 20:28 BAJim_H 阅读(329) 评论(0) 推荐(0)
摘要:Description 给出一棵n个节点的树,每个点有一个1~n的颜色 有m次操作,每次操作修改一个点的颜色 需要在每次操作后回答树上$n^2$条路径每条路径经过的颜色种类数和。 $n,m 阅读全文
posted @ 2019-06-16 22:23 BAJim_H 阅读(261) 评论(0) 推荐(0)
摘要:Description 给出一棵n个点的树,现在有m种颜色,要给每个节点染色,相邻节点不能同色。 另外有k条限制,形如x号点不能为颜色y 同一节点有可能有多条限制。 求方案数对998244353取模的结果。 n define fo(i,a,b) for(int i=a;i=b; i) define 阅读全文
posted @ 2019-05-29 11:56 BAJim_H 阅读(740) 评论(0) 推荐(0)
摘要:Description 有一棵n个点的结构未知的树,初始时只有1号点是已被访问的。 你可以调用交互库的询问函数explore(x,y),其中x是已访问的点,y是任意点。 它会返回x向y方向走第一步的点,如果该点未被访问,则将其标记为已访问。 你需要实现一个函数,它通过接口得到n和T,需要在T次exp 阅读全文
posted @ 2019-04-11 15:02 BAJim_H 阅读(276) 评论(0) 推荐(0)
摘要:Description $n,q,V\leq 100000,w_i\leq 10^9$ Solution 又是一道大数据结构 由于有一个下取整,这就导致了不同时间的修改值是不能简单的直接加在一起的。 容易发现,1操作的影响只会影响到距离不超过log的点。 这样我们很容易得到一个$q\log n\lo 阅读全文
posted @ 2019-03-28 15:42 BAJim_H 阅读(272) 评论(0) 推荐(0)
摘要:Preface 听说KD树实在是个大神器 可以解决多维空间多维偏序点权和,可以求某个点的空间最近最远点 就二维平面上的来说,复杂度在$O(n\log n)$到$O(n\sqrt n)$不等 嫌KD树不平衡了还可以来一个替罪羊树式的暴力重构 再也不用担心写不出树套树了!(狗头) Text 这是个什么东 阅读全文
posted @ 2019-03-21 22:02 BAJim_H 阅读(353) 评论(0) 推荐(0)
摘要:Description N,Mx_2 \end{array}\right. $$ 容易发现它还是个凸函数,相当于在原来的凸函数两边斜率绝对值大于c的部分修改掉。 这样我们只需要支持区间加、区间赋值为一次函数,以及查找某个斜率 线段树维护即可。 时间复杂度$O(n\log n)$ Code cpp i 阅读全文
posted @ 2019-03-21 21:54 BAJim_H 阅读(237) 评论(0) 推荐(0)