摘要: 神仙题.jpg 首先答案满足可二分性,二分后变成了判定性问题。 我们想想现在有个 $n \times mid$ 的表格,初始时全为 $0$,每次我们能将一列中 $m$ 个数添上 $1$,要求最后每一行都不能一样。 现在我们换一种角度,我们考虑一行一行的填,依然要满足上面那两个条件。 最优的操作是我们 阅读全文
posted @ 2020-04-08 21:42 wljss 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 考虑先建出来广义后缀自动机,统计出来每个节点在多少个字符串里出现过。 只有出现次数 $ =k$ 的节点对我们有用,该节点能贡献的字符串数为 $c[i]=dis[i] dis[fa[i]]$ 一个节点对其原串的答案的贡献就是它所有子串的贡献,也就是从根节点到该节点上所有点 $c$ 值之和。 $dfs$ 阅读全文
posted @ 2020-04-08 21:19 wljss 阅读(134) 评论(0) 推荐(1) 编辑
摘要: 挺神仙的一道题。 先建出来 $AC$ 自动机,考虑在上面 $DP$ ,设 $f[i]$ 为在AC自动机上 $i$ 节点时期望还有多长才能结束。 若 $i$ 为一个字符串的结尾,则 $f[i]=0$ 否则 $\displaystyle f[i]=1+\frac{f[tr[i][j]]}{26}$ 然后 阅读全文
posted @ 2020-04-08 20:56 wljss 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 将序列分块后面对每一个序列维护一个李超线段树 操作一:整块的用李超线段树求,残余的暴力搞。 操作二:因为 $v$ 是正数,所以直接加入一条新的线段就能覆盖掉原来的线段。 操作三:整块的用 $tag$ 标记维护,残块的直接覆盖掉。 注意题面中说操作一和操作三不会超过 $10^5$,复杂度有保证。 阅读全文
posted @ 2020-04-08 20:23 wljss 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 一个远古时期的坑终于填上了2333 我们设 \(f[l][r][x][y]\) 为使 \(l\) 到 \(r\) 这段区间到达 值域 \(\in [x,y]\) 这个情况下的最小花费. \(g[l][r]\) 为将 \([l,r]\) 全都消去的最小花费 先枚举 \(l,r,x,y\) \(f\) 阅读全文
posted @ 2020-04-08 17:29 wljss 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 首先我们可以二分答案。然后转变为判断 $mid$ 以内不讨厌的数和 $k$ 的关系。 $mid$ 以内不讨厌的数= $mid$ $ $ $mid$ 以内讨厌的数 对于讨厌的数我们可以枚举 $i$,看 $i^2$ 会造成多少个讨厌的数,显然是 $\displaystyle \left \lfloor 阅读全文
posted @ 2020-04-08 12:08 wljss 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 两种形态都对经过的路程有限制,我们可以联想到克鲁斯卡尔重构树。 我们考虑将点权转化为边权,因为我们走这条边的话两个端点都要符合条件,所以人形态是边权为边的两个端点的较小值,狼形态相反。 人形态时要建一个最大生成树,狼形态相反 然后我们就可以知道人形态时起点可以到达哪些点,狼形态时哪些点可以到达终点。 阅读全文
posted @ 2020-04-08 11:36 wljss 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 考虑每个小区间的的贡献,显然是只用到了覆盖了这个小区间的值里面第 $k$ 大。 倘若我们已经知道了覆盖当前区间的值都有多少个,我们就可以在线段树上二分找第 $k$大。 现在我们并不知道,我们可以用差分+线段树上修改的方法来完成对当前 值的出现次数 的维护。 阅读全文
posted @ 2020-04-08 11:20 wljss 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 之前做过一到类似的,当时没写题解,今天来补上。 首先我们发现圆没有交,所以两个圆只有包含和相离两种关系。 我们考虑用扫描线来处理,随着扫描线的推移,和上面的圆的交点 一直都在 和下面的圆的交点的上面,可以用 $set$ 来维护相对位置 怎么确定一个圆应该是加还是减?我们将圆拆分成上半圆和下半圆,将上 阅读全文
posted @ 2020-04-08 11:09 wljss 阅读(203) 评论(0) 推荐(0) 编辑