随笔分类 -  数据结构

HDU - 4027 Can you answer these queries?(线段树)
摘要:题目链接:Can you answer these queries? 题意:维护一个序列,支持两种操作:(1)将区间[l,r]内的所有数开根号(向下取整),(2)求区间[l,r]内元素的和 思路:和The Child and Sequence类似,对于操作(1),一个数最多开7次根号(向下取整)就会 阅读全文

posted @ 2020-04-25 17:19 啊啊鄂 阅读(159) 评论(0) 推荐(0)

Codeforces Round #250 (Div. 1) - D. The Child and Sequence(线段树)
摘要:题目链接:The Child and Sequence 题意:给你你一个序列a,有三种操作:(1)求$\sum_{i=l}^{r}a[i]$,(2)让区间[l,r]内的所有数模x,(3)令a[k]=x 思路:如果没有操作(2),那就是线段树模板题,现在考虑如何实现操作(2) 定理:如果mod<x,那 阅读全文

posted @ 2020-04-24 23:54 啊啊鄂 阅读(127) 评论(0) 推荐(0)

AC自动机
摘要:1. Keywords Search 题目链接:hdu - 2222 题意:n个模式串和一个文本串,问有多少个模式串在文本串中出现过 思路:AC自动机模板题,把n个模式串插入自动机中,然后文本串在自动机上暴力跳fail即可 #include <iostream> #include <algorith 阅读全文

posted @ 2020-04-22 09:29 啊啊鄂 阅读(147) 评论(0) 推荐(2)

后缀自动机
摘要:1. 后缀自动机二·重复旋律5 题目链接:HihoCoder - 1445 题意:求一个串所有不同子串的个数 思路:文本串S的后缀自动机是一部恰好只能识别S全部子串的机器,所以统计所有不同子串的个数,只需要将每个状态内子串的个数相加即可,而每个状态内子串的个数为sam[i].longest-sam[ 阅读全文

posted @ 2020-04-13 22:39 啊啊鄂 阅读(173) 评论(0) 推荐(0)

后缀数组
摘要:1. New Distinct Substrings 题目链接:spoj - SUBST1 题意:给你一个串,求他的子串个数 思路:每个子串都是某个后缀的前缀,所以计算每个后缀的贡献即可,按照后缀suffix(sa[1]),suffix(sa[2])...的顺序计算,当加入suffix(sa[k]) 阅读全文

posted @ 2020-04-02 15:32 啊啊鄂 阅读(178) 评论(0) 推荐(1)

平衡树入门
摘要:前置技能 平衡树是二叉搜索树的一种,二叉搜索树的定义如下: 空树是二叉搜索树 若二叉搜索树的左子树不为空,则其左子树上所有点的权值均小于其根节点的值 若二叉搜索树的右子树不为空,则其右子树上所有点的权值均大于其根节点的值 二叉搜索树的左右子树均为二叉搜索树 对于有$n$个节点的二叉搜索树,每次基本操 阅读全文

posted @ 2020-03-19 21:58 啊啊鄂 阅读(280) 评论(0) 推荐(1)

BZOJ - 2038 小Z的袜子(普通莫队)
摘要:题目链接:小Z的袜子 题意:$n$只袜子,$m$个询问,每次回答有多大概率在$[L,R]$区间内抽到两只颜色相同的袜子 思路:普通莫队,如果两个询问左端点在一个块内,则按询问右端点排序,否则按照所在块的序号排序,维护一个数组$num$,表示在区间$[L,R]$中,颜色为$c$的袜子有$num[c]$ 阅读全文

posted @ 2020-02-20 16:06 啊啊鄂 阅读(116) 评论(0) 推荐(0)

2020牛客寒假算法基础集训营3 - G. 牛牛的Link Power II(线段树)
摘要:题目链接:牛牛的Link Power II 题意:给你一个只含$0$和$1$的串,定义串的$Link$值为串中两个的$1$之间的距离的和,$(u,v)$和$(v,u)$被看认为是同一对,有$m$次操作,每次操作可以把串中某个$1$变为$0$,或者把某个$0$变为$1$,求一开始和每次操作后串的$Li 阅读全文

posted @ 2020-02-09 11:43 啊啊鄂 阅读(255) 评论(0) 推荐(1)

2020 CCPC Wannafly Winter Camp Day1 - I. K小数查询(分块)
摘要:题目链接:K小数查询 题意:给你一个长度为$n$序列$A$,有$m$个操作,操作分为两种: 输入$x,y,c$,表示对$i\in[x,y] $,令$A_{i}=min(A_{i},c)$ 输入$x,y,k$,表示询问区间$[x,y]$中的第$k$小数 思路:数据范围不是很大,可以分块来做,记录每个块 阅读全文

posted @ 2020-01-22 21:38 啊啊鄂 阅读(383) 评论(0) 推荐(0)

Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) - D2. Optimal Subsequences (Hard Version)(主席树)
摘要:题意:一共有$n$个数,$m$次询问,每次询问包括$k、pos$两个数,需要你从这$n$个数里面找出$k$个数,使得他们的总和最大,如果有多种情况,找出序号字典序最小的一组,然后输出这个序列中第$pos$个数的值。 思路:根据贪心的思想,把这$n$个数按大到小排个序$($相同大小按下标从小到大$)$ 阅读全文

posted @ 2020-01-19 13:03 啊啊鄂 阅读(170) 评论(0) 推荐(0)

Codeforces Round #603 (Div. 2) - E. Editor(线段树)
摘要:题意:给你一串指令集,当某个指令为$``L"$时,表示鼠标的光标向左移动一个单位$($如果已经位于最左边,则不移动$)$,当指令为$``R"$时,表示将光标像右移动一个单位,其他的字符$($只有小写字母和左括号、右括号$)$都表示将当前光标指向的字符更改为输入的字符,对于每个指令,输出一个数,如果所 阅读全文

posted @ 2019-12-29 15:53 啊啊鄂 阅读(179) 评论(0) 推荐(0)

Codeforces Round #600 (Div. 2) - D. Harmonious Graph(并查集)
摘要:题意:对于一张图,如果$a$与$b$连通,则对于任意的$c(a<c<b)$都有$a$与$c$连通,则称该图为和谐图,现在给你一张图,问你最少添加多少条边使图变为和谐图。 思路:将一个连通块内最大的点做为根,用并查集维护,遍历一遍,对于某个点$i$及该点连通块内的根$fx$,$i$到$fx$内的每一个 阅读全文

posted @ 2019-12-13 13:52 啊啊鄂 阅读(222) 评论(0) 推荐(0)

The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming Contest - F.Sequence(打表+线段树)
摘要:题目链接:Sequence 题意:给你一个长度为$n$的数组,定义函数$f(l,r)=a_{l} \oplus a_{l+1} \oplus...\oplus a_{r}$,$F(l,r)=f(l,l)\oplus f(l,l+1)\oplus ...\oplus f(l,r)\oplus f(l+ 阅读全文

posted @ 2019-10-19 23:59 啊啊鄂 阅读(190) 评论(0) 推荐(0)

导航