摘要: 题面 思路 首先,和子串排序相关的题目,第一想法肯定是和后缀数组有关 于是我们先把原串的后缀数组建出来,$height$求出来 然后一个结论:每个字符串贡献的本质不同的子串数量是$len(i) height(rank(i))$ 这样我们就可以确定询问的子串是啥,以及对应的那个集合了 还有一个问题:原 阅读全文
posted @ 2018-09-07 21:28 dedicatus545 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 题面 思路 路径问题?当然是点分治啊 最大最小值的差查询......嗯,虽然不知道为什么,但是树状数组求逆序对一定能处理!(暴论) 所以方法就确定了啦~( _ ||) 点分治,每次先dfs一遍,搞出来当前分治块里面每个点到分治中心的路径上边权最大最小值,如果最大值减去最小值大于K就丢掉 然后,我们把 阅读全文
posted @ 2018-09-07 20:44 dedicatus545 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题面 思路 首先,可以有一个$dp$的思路 不难发现本题中,三个点如果互相距离相同,那么一定有一个“中心点”到三个点的距离都相同 那么我们可以把本题转化计算以每个点为根的情况下,从三个不同的子树中选择深度相同的三个点的方案数 进一步,我们选定1号点为根,这样定义我们的$dp$方程: $f[u][di 阅读全文
posted @ 2018-09-07 16:43 dedicatus545 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 题面 "传送门" 思路 首先,本题目的核心元素是 非降子序列 ,而显然这个题目中的子序列只和序列的长度、位置,以及互相之间的包含关系,这些东西相关 所以我们可以依据这些先“猜”(实际上是估测一个类似的)$dp$方程: 设$dp[i][j]$表示以$i$个位置结尾的,长度为$j$的非降子序列个数 转移 阅读全文
posted @ 2018-09-07 14:51 dedicatus545 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题面 "bzoj权限题传送门" "luogu传送门" 思路 首先,这个题目显然可以从所有小的点往大的连边,然后如果没环就一定可行,从起点(入读为0)开始构造就好了 但是问题来了,如果每个都连的话,本题中边数是$O(n^2)$级别的,显然会挂 发现两条性质: 1.所有的限制条件中,给定的总点数不超过3 阅读全文
posted @ 2018-09-07 11:23 dedicatus545 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题面 "传送门" 思路 首先有一个结论(应该是有比较大的利用价值的): 有向无环图的生成外向树树个数等于所有入度非0的点的入度乘积 然后这道题里面,唯一不合拍的因素就是这里有一条可能成环的边 我们可以把这条边先加入原来的DAG里面,然后用上面的结论算出总生成树个数,再减去不合法的,得到答案 那么有哪 阅读全文
posted @ 2018-09-07 10:35 dedicatus545 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题面 "传送门" 思路 首先,这个涂黑的方法我们来优化一下模型(毕竟当前这个放到矩形里面,你并看不出来什么规律qwq) 我们令每个行/列编号为一个点,令边(x,y)表示一条从x到y的有向边 那么显然只要有一条长度为2的路径,就会得到一个三元环 我们考虑如何统计新加入的边的数量,发现有如下规律: 1. 阅读全文
posted @ 2018-09-07 10:06 dedicatus545 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题面 "传送门" 思路 DP方程 首先,这题如果没有修改操作就是sb题,dp方程如下 $dp[u]=max(v[u],max(dp[v]))$,其中$v$是$u$的儿子 我们令$g[u]=max(dp[v])$ 修改? 我们发现,本题中所有的修改都是非负的 也就是说,每一次修改结束以后,$dp[u] 阅读全文
posted @ 2018-09-07 09:06 dedicatus545 阅读(174) 评论(0) 推荐(0) 编辑