03 2020 档案
摘要:[POJ1149][SPOJ4063]PIGS(最大流) 题面 略 分析 很妙的网络流建图套路。 注意到我们只能交换客户打开过的猪圈里的猪。那么相当于可以通过顾客来中转猪。体现到建图上就是: 我们把每一个顾客看成一个点。对于每个猪圈,从原点向打开它的第一个顾客连边,容量为初始猪数量$a_i$,表示最
阅读全文
摘要:[BZOJ3879]SvT(后缀树+虚树) 题面 有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n]. 现在有若干组询问,对于每一个询问,我们给出若干个后缀(以其在S中出现的起始位置来表示),求这些后缀两两之间的LCP的长度之和.一对后缀之间的LCP长度仅统计一遍. 分析 建出S的后缀树
阅读全文
摘要:[NOI Online 提高组]冒泡排序(树状数组) 题面 略 分析 记$f_i=\sum_{j=0}^i[a_j a_i]$表示$[1,i 1]$中比$a_i$大的数的个数。那么逆序对数就是$\sum_{i=1}^n f_i$.可以用树状数组预处理得出。 手玩一下冒泡排序过程发现,每冒泡一轮,所有
阅读全文
摘要:[NOI Online 提高组]序列 (并查集+二分图判定) 题面 略 分析 首先不妨令$b_i=b_i a_i$,这样我们需要通过一系列操作把所有$b_i$变成0. 我们把每个位置看成点。 对于所有2操作连边。如果两个位置连通,就可以使一个位置+1,一个位置 1.那么对于一个连通块, 无论我们怎么
阅读全文
摘要:[GDOI2017]微信(广义SAM+状态压缩) 题面 题面过长,略 分析 先把n个串合并建出Trie. 由于n很小,对于Trie的每个节点,我们用状压记录这个节点代表的子串来自哪些串。然后BFS这个Trie,建出广义SAM.对于SAM中新建的每个节点,同样维护这个子串来自哪些串,构建的时候把它赋值
阅读全文
摘要:[LuoguP6144][USACO20FEB]Help Yourself P(DP+组合数学+线段树) 题面 Bessie 现在有 N条在一条数轴上的线段,第 i条线段覆盖了 $ "l_i,r_i" $的所有实数。定义一个线段集合的并为所有至少被一条线段覆盖的实数。定义一个线段集合的复杂度为该集合
阅读全文
摘要:[GDOI2017] 取石子游戏(LCA) 题面 给出一棵树,每个点都有一个权值。对于每个节点,求去掉该节点的子树后,剩下所有节点的权值MEX(最小的没有出现的非负整数。) 分析 用权值线段树合并乱搞显然是可行的,但细节很多且需要卡常。 我们考虑所有权值为$i$的节点对答案的影响。求所有节点的LCA
阅读全文
摘要:[BZOJ3756]Pty的字符串(广义SAM) 题面 在神秘的东方有一棵奇葩的树,它有一个固定的根节点(编号为1)。树的每条边上都是一个字符,字符为a,b,c中的一个. 你可以从树上的任意一个点出发,然后沿着远离根的边往下行走,在任意一个节点停止,将你经过的边的字符依次写下来,就能得到一个字符串
阅读全文
摘要:[SPOJ2666][ZJOI2007]捉迷藏Query on a tree IV(树链剖分)(论文做法) 题面 实际上,捉迷藏是Query on a tree IV的简化版。但区别只是捉迷藏的边权全部为1.这里把两个题合并起来写。 给定一棵包含 N 个结点的树,每个节点要么是黑色(亮灯),要么是白
阅读全文
摘要:[BZOJ 3145]Str(SAM+启发式合并) 题面 Arcueid得知了两者的DNA片段,想寻求一个DNA片段,使得其在两者的DNA中都出现过。我们知道公主的脑袋有点不太灵活,如果两个DNA片段只有一个位置不同,她也会将其认为是相同的。所以请您找出这样的最长的DNA片段吧。 分析 考虑两个串中
阅读全文
摘要:[BZOJ3697]采药人的路径(点分治+树形dp) 题面 采药人的药田是一个树状结构,每条路径上都种植着同种药材。 采药人以自己对药材独到的见解,对每种药材进行了分类。大致分为两类,一种是阴性的,一种是阳性的。 采药人每天都要进行采药活动。他选择的路径是很有讲究的,他认为阴阳平衡是很重要的,所以他
阅读全文
摘要:[Codeforces1037H]Security(SAM+线段树合并) 题面 分析 CF什么时候也开始出这种套路题了 和[NOI2018]你的名字几乎一模一样,看到区间串问题,用线段树维护right集合,每次沿着转移边走的时候要判断一下转移到的节点的right集合中是否有在$[l,r]$内的值.
阅读全文
摘要:[BZOJ1921][CTSC2010]珠宝商(点分治+后缀自动机) 题面 给出一个$n$个点的树,每个点上都有一个字符。再给出一个长度为$m$的特征串$str$。求树上所有简单路径经过节点的字符按顺序连接起来后的串在特征串中的出现次数之和。 分析 显然发现是点分治。考虑如何计算经过一个点$x$的所
阅读全文
摘要:
阅读全文
摘要:[NOI2018]你的名字(后缀自动机+线段树合并) 题面 给出一个字符串$S$,有$q$组询问,每次询问给出一个字符串$T$和整数$l,r$.问能从$T$中选出多少个本质不同的子串,满足这个子串在$S$的区间$[l,r]$没有出现过。 $|S| \leq 5 \times 10^5,q \leq
阅读全文
摘要:[LuoguP4287][SHOI2011]双倍回文(回文自动机) 题面 定义一个字符串为"双倍回文",当且仅当它是回文串,长度为4的倍数,且前一半和后一半的字符串都是回文串。如$\texttt{abbaabba}$ 给出一个字符串$S$,求它的最长双倍回文子串的长度。 $|S|\leq 5 \ti
阅读全文
摘要:[Codeforces1036E]Covered Points(计算几何求线段交点) 题面 给出$n$条起点和终点都是整点的线段,问这些线段能够覆盖多少个整点.保证线段两两不共线 $n \leq 1000$ 分析 先不考虑线段相交的情况,只考虑一条线段$AB$上有多少个整点.设$\vec{u}=\v
阅读全文
摘要:[GDOI2015]推箱子(状压bfs) 题面 题面过长,略 分析 观察到$m \times m =64 $,那么可以把箱子的01状态压到一个 里面 然后对于地图上的每一个点$(x,y)$,预处理出左上角在$(x,y)$,边长为$m$的正方形的01状态。如果这个状态和箱子的状态按位与的结果为0,那么
阅读全文

浙公网安备 33010602011771号