首先我们考虑一个暴力的dp: 我们从小到大加入每个数,当我们加入第$i$个数时,可能产生的逆序对数量是$[0,i-1]$(这个证明考虑把第$i$个数放在哪即可),这样可以列出一个递推式: 设状态$dp[i][j]$表示已经加到了第$i$个数,此时的逆序对个数为$j$,那么有转移:$dp[i][j]= Read More
posted @ 2019-07-04 21:50 lleozhang Views(180) Comments(0) Diggs(0) Edit
不想写题解...这题就是在跑最短路的时候记录下每个点最短路树上可能的父亲,然后把每个点的父亲数量乘起来就行了 代码: Read More
posted @ 2019-07-04 15:02 lleozhang Views(50) Comments(0) Diggs(0) Edit
考虑容斥,容斥系数-1 首先不难发现,如果没有一个公司一条边这个限制的话,就是一个很简单的矩阵树定理了 可是有了这个限制,就会出现重复 因此我们用容斥原理来解决 我们枚举哪个(些)公司没被用到,对剩下的公司跑矩阵树定理,乘一个容斥系数累计贡献即可 时间复杂度$O(n^{3}2^{n})$ 代码: Read More
posted @ 2019-07-04 15:01 lleozhang Views(63) Comments(0) Diggs(0) Edit
线段树优化建图板子题 首先暴力建图显然是不可取的,但是我们发现建图要求是点和区间之间的问题,所以考虑用线段树优化 但是怎么优化呢? 如果用一棵线段树很难处理同时出边和入边,因此我们考虑用两棵线段树(类似拆点),一棵线段树作为起点,另一棵线段树作为终点,然后在两棵线段树之间连边即可 这样的话连边的方式 Read More
posted @ 2019-07-04 11:01 lleozhang Views(297) Comments(0) Diggs(0) Edit
考察后缀自动机的性质:每个节点上维护的子串数量等于自己与父节点的$len$之差 据此,我们在建后缀自动机的时候,对于每个插入的节点加上他与父节点的$len$之差即可 什么?分裂出来的节点怎么办?无所谓!不累计! 因为假设我们有一个点$p$,其父亲为$f$,分裂出的节点为$q$,那么我们知道,进行这次 Read More
posted @ 2019-07-04 09:51 lleozhang Views(71) Comments(0) Diggs(0) Edit
多有趣的一道题啊... 考场上的思路: 首先我们可以通过hash判断出每个$B$类串是几个$A$类串的前缀,从这个$B$类串向对应的$A$类串连边 然后我们直接按支配关系从$A$类串向$B$类串连边,相当于以$B$类串为中转构造了一张$A$类串的图,在这张图上跑一次最长路即可 这样做是40分(所以4 Read More
posted @ 2019-07-04 09:04 lleozhang Views(75) Comments(0) Diggs(0) Edit
levels of contents