随笔分类 -  BZOJ

1 2 3 4 5 ··· 8 下一页
摘要:给每条边赋权值为 $\frac{p}{1 p}$,用基尔霍夫矩阵求出所有生成树权值积之和,最后乘上 $\prod 1 p$ 即可 阅读全文
posted @ 2020-03-28 09:19 Mrzdtz220 阅读(135) 评论(0) 推荐(0)
摘要:设 $f_i$ 为 $i \to t$ 的期望步数 转移方程为 $f_u = \sum_{u \to v} \dfrac{f_v}{outdeg_u} + 1$ 先tarjan缩点 然后强连通分量内进行高斯消元即可 把出边到的点不在强连通分量内的 $\dfrac{f_v}{outdeg_u}$ 作为 阅读全文
posted @ 2020-03-26 21:47 Mrzdtz220 阅读(109) 评论(0) 推荐(0)
摘要:把权值为 $0$ 的边权值设为 $ 1$ 那么阴阳平衡的路径就是权值和为 $0$ 的路径 考虑点分治统计路径数 如果没有中间点的限制,那么只需要统计每种路径权值出现的个数,相加之和为 $0$ 的路径数用乘法原理统计即可 现在有了中间点的限制,那么就是根到该节点的路径上,出现了一个中间节点,该根到中间 阅读全文
posted @ 2020-03-26 21:43 Mrzdtz220 阅读(125) 评论(0) 推荐(0)
摘要:设 $f_i$ 为前 $i$ 位能由多少种方案组成 那么要么就是正常的得到方式,可以由 $f_{i 1}$ 转移来,方案数为 $f_{i 1} \times cnt_{s_i}$ 错误的得到方式就由 $f_{i 2}$ 转移得来,方案数为 $f_{i 2} \times cnt_{s_{i 1}, 阅读全文
posted @ 2020-03-19 21:45 Mrzdtz220 阅读(415) 评论(0) 推荐(0)
摘要:要求左右选出来的数满足,比 $b$ 大的等于比 $b$ 小的 从 $b$ 向左右分别拓展 向左遇到一个比 $b$ 大的就 1,比 $b$ 小的就 +1 向右拓展就反过来统计 最后答案就是 $\sum left_i \times right_i$ 阅读全文
posted @ 2020-03-19 13:32 Mrzdtz220 阅读(122) 评论(0) 推荐(0)
摘要:一:对B串建后缀自动机,暴力枚举A子串的起始位置,匹配不上则更新答案 二:对B串建序列自动机,暴力枚举A子串的起始位置,匹配不上则更新答案 三:对B串建后缀自动机,$f_{i,j}$ 为考虑A串前 $i$ 个字符,当前在B串的SAM上的状态为 $j$ 的最小值,进行DP 四:对B串建序列自动机,$f 阅读全文
posted @ 2020-03-18 19:03 Mrzdtz220 阅读(113) 评论(0) 推荐(0)
摘要:两个状态的最长公共后缀是他们在parent树上的LCA 那么将串反过来就是LCP了 二分答案,找到d所在状态的parent树上最高的节点,且那个节点的最大长度大于等于二分的值 这个倍增即可 这个状态的right集合最大,再查看right集合中是否存在 a, b 之间的某个位置即可 用线段树合并维护r 阅读全文
posted @ 2020-03-18 17:36 Mrzdtz220 阅读(186) 评论(0) 推荐(0)
摘要:考虑升序序列对答案的贡献,最后只需要乘上 $n!$ 即可 $f_{i,j}$ 表示已经放了 $i$ 个数,且最大值不超过 $j$ 的方案数 $f_{i,j}=j \times f_{i 1,j 1}+f_{i,j 1}$ 那么答案为 $f_{n,A}$ 不难 发现 $f_{n,i}$ 是关于 $i$ 阅读全文
posted @ 2020-03-17 16:11 Mrzdtz220 阅读(117) 评论(0) 推荐(0)
摘要:竞赛图三元环个数为 $\binom{n}{3} \sum\limits_{i=1}^n \binom{deg_i}{2}$ 即为最小化 $\sum\limits_{i=1}^n \binom{deg_i}{2}$ 考虑费用流 给每个比赛新建一个点 $C_{i,j}$,若胜负关系已确定,则 $C_{i 阅读全文
posted @ 2020-03-13 16:08 Mrzdtz220 阅读(109) 评论(0) 推荐(0)
摘要:考虑倒推整个过程 $a_n$,$a_{n 1}$ 的值可以任意确定 从 $a_{n 2}$ 开始不能选的为后面的数最大值和最小值组成的区间 $dp_{i,l, r}$ 表示当前填第 $i$ 位数字,不能填的区间为 $[l,r]$ 但是其实在填第 $n 2$ 位的时候可以填 $a_n$ 的取值 而且存 阅读全文
posted @ 2020-03-13 14:10 Mrzdtz220 阅读(109) 评论(0) 推荐(0)
摘要:设 $dp_{i,j}$ 为长度为 $i$ 的排列,逆序对数有 $j$ 个的方案数 那么 $dp_{i,j}=\sum\limits_{k=\max\{0,j (i 1)\}}^j dp_{i 1, k}$ 考虑每个新加入的数插入的位置对逆序对数的影响即可得到上述转移方程 通过前缀和优化能实现 $O 阅读全文
posted @ 2020-03-13 10:07 Mrzdtz220 阅读(99) 评论(0) 推荐(0)
摘要:对于位运算的题目,大多需要按位计算 对于第一问,按位考虑,即对于每个右端点,查询有多少个左端点在该位下与其不同,$O(n)$ 扫一遍即可 对于第二问,同样按位考虑 对于每一位,只有奇数对 $sum(l,r)$ 在该位下为 $1$ 时才能对答案有贡献 即要满足 $sum_{r} sum_{l 1} \ 阅读全文
posted @ 2020-03-12 21:26 Mrzdtz220 阅读(110) 评论(0) 推荐(0)
摘要:答案为 $\sum \limits_{i=b+1}^{a+b}\binom{a+b}{i}$ 因为 $\sum_{i=0}^k \binom{n}{k}=2^n$ 那么可以把上述式子拆成两部分求解 $\sum \limits_{i=b+1}^{a+b}\binom{a+b}{i}=\sum\limi 阅读全文
posted @ 2020-03-12 15:42 Mrzdtz220 阅读(126) 评论(0) 推荐(0)
摘要:二分时间转化为判定性问题 考虑网络流 $S$ 向第 $i$ 个巫妖连一条容量为 $\dfrac{mid}{time_i}+1$ 的边 第 $j$ 个精灵向 $T$ 连一条容量为 $1$ 的边 预处理出每个巫妖能否攻击每个精灵 通过判断圆和线段是否有交点即可 判断方法为圆心找到离线段的最近距离和半径比 阅读全文
posted @ 2020-03-11 12:19 Mrzdtz220 阅读(110) 评论(0) 推荐(0)
摘要:暴力的想法是设五维数组进行DP 但是发现如果知道纵坐标及步数就能知道横坐标 那么就是需要三维 再把步数进行滚动即可 阅读全文
posted @ 2020-03-10 21:10 Mrzdtz220 阅读(97) 评论(0) 推荐(0)
摘要:建一棵时间线段树,然后用一个局部变量维护当前的线性基就不用删除了 复杂度 $O(n \log ^2 n)$ 阅读全文
posted @ 2020-03-08 13:52 Mrzdtz220 阅读(126) 评论(0) 推荐(0)
摘要:求出每一个 $pos$ 之后就是置换的事了,置换里没有空位就得引入空位,否则就直接交换 现在就是给每个位置找一对 $x$ 和 $y$ 题目要求 $y$ 最小之后 $x$ 最小 观察式子发现 $y$ 确定了当前位置在哪个置换中,$x$ 确定了在置换的哪个位置上 那么对置换和位置都用一个并查集维护即可 阅读全文
posted @ 2020-03-07 11:43 Mrzdtz220 阅读(80) 评论(0) 推荐(0)
摘要:首先根据旋转同构,可以用burnside 设 $dp(d)$ 为长度为 $d$ 的环,旋转不同构的方案 那么答案为 $\dfrac{\sum \limits_{i=0}^{n 1} dp(\gcd(n, i))}{n}=\sum \limits_{d | n} \dfrac{dp(d)\varphi 阅读全文
posted @ 2020-03-06 16:23 Mrzdtz220 阅读(139) 评论(0) 推荐(0)
摘要:如果不新加边,那么给每个点选一条入边即可,答案为 $\prod \limits_{i=2}^n in\_degree_i$ 加入新边后,仍按上面的方法统计答案,但是原图中可能出现了环,如果出现环,那么边 $x \to y$ 一定就在环上 那么就统计选了 $y \to x$ 的路径的方案数 设 $dp 阅读全文
posted @ 2020-03-06 09:18 Mrzdtz220 阅读(88) 评论(0) 推荐(0)
摘要:对每一个位置 $i$,求出其上一次出现的位置 $pre_i$ 以及下一次出现的位置 $next_i$ 对一个询问来说,就是查询 $pre_i$ 在 $[0,l 1]$,$i$ 在 $[l, r]$,$next_i$ 在 $[r + 1, n + 1]$ 这个长方体内的最大值 那么可以用KD tree 阅读全文
posted @ 2020-03-05 22:59 Mrzdtz220 阅读(129) 评论(0) 推荐(0)

1 2 3 4 5 ··· 8 下一页