02 2016 档案
摘要:首先答案一定是包含直径某个端点的一个连通块里所有边权值之和,设直径为$AB$,以$A$和$B$分别为根进行处理。 首先按照最长路法则将这棵树进行树链剖分,那么每个叶子的贡献为它与它所在链顶端的点的距离。 将叶子按贡献从大到小排序,并求出$h[x]$表示$x$子树内叶子排名的最小值。 对于询问$(x,
阅读全文
摘要:考虑从左往右填数,维护当前数字权值与$A$权值的差值,如果差值大于9,那么以后无论怎么填,都不会改变大小关系。 所以设$f[i][j][k]$表示填了前$i$位,差值为$j$,是否卡住$B$上限为$k$的方案数,然后DP即可。 #include<cstdio> #include<cstring> #
阅读全文
摘要:将$I$转置,设$G=OI$,则$ans=G^0+G^1+...+G^d$。 注意到$G^d=O(IO)^{d-1}I$,而$IO$是大小为$k\times k$的矩阵,可以通过倍增在$O(k^3\log d)$的时间内求出,然后依次与$O$和$I$的一行一列相乘即可。 时间复杂度$O(nk^2+m
阅读全文
摘要:考虑DP,设$f[i][j]$表示考虑了$a[1..i]$和$b[1..j]$的最小代价。 若$a[i]==b[j]$,则$f[i][j]=\min(f[i-1][j],f[i][j-1])+1$。 否则找到最大的$t$,满足$x$和$y$往前$t$个均不相等,此时$f[i][j]=f[i-t-1]
阅读全文
摘要:枚举答案长度$L$,设$A$和$B$分别为第一个循环节和反串的第一个循环节。 1.坏点不在$A$,那么可以暴力匹配检验。 2.坏点不在$B$,那么把串翻转后不在$A$中,转化为1。 3.坏点在$A$和$B$的交里面,那么只要长度为$n-L+1$的前后缀相同,那么就存在长度为$L$的循环节。 通过扩展
阅读全文
摘要:首先求出区间前$k$大数中奇数的个数和偶数的个数。 如果都是偶数,那么答案就是前$k$大数的和。 否则,要么去掉最小的偶数,加上最大的奇数,要么去掉最小的奇数,加上最大的偶数。 主席树维护即可。 时间复杂度$O((n+m)\log n)$。 #include<cstdio> #include<alg
阅读全文
摘要:记忆化搜索,设$f[i][j]$表示符号$i$一开始kmp指针为$j$,中间匹配了多少次,$g[i][j]$则表示匹配结束后kmp指针的位置。 时间复杂度$O(nl^2)$。 #include<cstdio> #include<cstring> const int N=26,M=105,P=1000
阅读全文
摘要:因为是一个排列,所以可以用$n$位二进制数来表示$O(n\log n)$求LIS时的单调栈。 首先通过$O(n^22^n)$的预处理,求出每种LIS状态后面新加一个数之后的状态。 设$f[i][j]$表示已选数字集合为$i$,LIS状态为$j$的方案数。 转移时枚举不在$i$里的数$t$,如果$t$
阅读全文
摘要:求出左上角到每个需要保护的点左上角的最短路树,那么最优解一定圈住了它们。 然后将每个点拆成四个点,四个点之间如果没跨越最短路树的树边,那就连0权边。 每个需要保护的点四周4个点都不可通行,求出最短路即为答案。 时间复杂度$O(nm\log(nm))$。 #include<cstdio> #inclu
阅读全文
摘要:$x^k=\sum_{i=1}^k Stirling2(k,i)\times i!\times C(x,i)$ 设$f[i][j]=\sum_{k=1}^n C(dist(i,k),j)$。 则可以利用$C(i,j)=C(i-1,j-1)+C(i-1,j)$,通过树形DP求出$f$。 时间复杂度$O
阅读全文
摘要:\[\begin{eqnarray*}&&\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k\\&=&\sum_d d^k\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=d]\\&=&\sum_d d^k\sum_{i=1}^{\lfloor\frac{n}
阅读全文
摘要:设$c[i]=g[i]+\frac{i(i+1)}{2}-a[i]\times i-a[i]$,$d[i]=a[i]-i$,$f[i]$表示以$i$为结尾最多保留多少个建筑,则 $f[i]=\max(f[j])+1$,$j<i且d[j]\leq d[i]$ $g[i]$表示以$i$为结尾的最小代价,
阅读全文
摘要:树链剖分+线段树,每个节点维护以下信息: (1)单独在某个点分配$i$个人的最大收益。可以$O(m)$合并。 (2)分配$i$个人的最大收益。可以用$O(m^2)$合并。 时间复杂度$O(c(m^2\log n+m\log^2n))$。 #include<cstdio> #include<algor
阅读全文

浙公网安备 33010602011771号