摘要:
题意: 给你一个长度为n的01串,问你这个串的所有子串中,出现次数大于1的子串的出现次数,最后按照字典序输出。 分析: 对于这个题目,我们显然可以用两种处理后缀的数据结构进行处理。 1:后缀自动机: 个人觉得在这个题中,用后缀自动机去解决会相对来说比较好理解。 我们知道,在后缀自动机上的结点状态$s 阅读全文
摘要:
"传送门" 题意: 给你一个字符串$str$,问出现次数为$k$的最长的子串的长度。 分析: 首先我们先将字符串$str$的所有后缀进行排序,并求出他们两两的$height$数组。 根据$height$数组的含义,$height[i]=lcp(i,i 1)$,我们知道,倘若存在一个子串出现了k次,那 阅读全文
摘要:
"传送门" 分析: 非常经典的费用流的模型吧,也可以通过二分图最大匹配去做,但是鉴于二分图最大匹配的算法存在一定的局限性,故还是学一学较为通用的费用流的做法。 这道题目中本质上要讨论的问题跟运输问题, "运输问题" 是一致的。 因为考虑到每个人只能被分配到一种货物,每种货物只能被一个人所分配,因此, 阅读全文
摘要:
"传送门" 题意: 给你一棵树,每条边有权值,现在要求你求出有多少对点对满足他们之间的权值能够被$3$整除。 分析: 因为我们需要维护的是树中链的信息,因此我们不妨使用点分治进行统计。因为我们只需要判断是否能够被$3$整除,因此我们只需要统计出点对之间的权值和$\%3$之后的信息,即我们只需要统计出 阅读全文
摘要:
题意: 有$n$个长度分别为$a_i$的竹子,现在有$m$次操作,每次操作给你四个数字$l,r,x,y$。现在你需要将区间$[l,r]$的竹子砍$y$刀,对于每刀,你需要选择一个高度$h$,你需要将区间$[l,r]$中高度超过$h$的竹子砍掉,最终你需要保证每一刀砍了的高度相同。现在问你第$x$刀需 阅读全文
摘要:
"传送门" 题意: 有$m$个仓库和$n$个零售商,第$i$个仓库送到第$j$个零售商需要花费$v[i][j]$元。现在需要让仓库的供给量以及零售商的收获量相同,问最小花费以及最大花费。 分析: 相当经典的最小费用最大流的模型。因为要保证供给以及收获相同,即代表着流量平衡,因此我们可以让超级源点$s 阅读全文
摘要:
"传送门" 题意: 给你n个串,要让你把这个$n$个串拼接起来,其中,$str_i$的后缀以及$str_{i+1}$的前缀中最长的部分只能取一份。 分析: 本题中,我们最主要需要解决的问题是如何快速的判断一个串的后缀是否和另一个串的前缀相同。而我们知道,$\text{hash}$可以在$\mathc 阅读全文
摘要:
"传送门" 题意: 给你一个长度为n的数列,其中有c种颜色,有q个询问,每个询问问你在区间[l,r]中,有多少种颜色的个数大于2。 分析: 这个题目跟求区间内不同的数的个数的解法非常相似。我们在这题中同样采取离线树状数组的做法。 我们发现,倘若处于位置$l$的第$i$种颜色$c_i$要贡献答案,那么 阅读全文
摘要:
"传送门" 分析: 这是一个非常经典的费用流的模型。 首先因为题目中限制我们每个点最多只能选取$k$次,因此,因为会有$k$次的限制,因此我们不妨用最大流进行限流,即我们将源点拆成两个点$S_0$以及$S_1$,从$S_0$点向$S_1$点连一条流量为k,费用为$0$的边。代表最多有大小为$k$的流 阅读全文
摘要:
"传送门" 题意: 给你一个$n n$的格子,如果第$i$个格子放入了棋子,则八联通方向都不能放置棋子,问放置$k$个棋子的方案数。 分析: 很明显可以进行$dp$,又因为$n$非常的小,因此我们可以采用状态压缩的方法。设$dp[i][state][k]$为当前第$i$行的状态为$state$时,放 阅读全文