03 2020 档案

摘要:考虑用$AC$自动机来解决本题这样的多字符串匹配问题。 要最大化魔法分割后得到的禁忌串数目,最优情况肯定为在一个串中每个禁忌串的右端点进行分割。对应到$AC$自动机上,就是匹配到一个禁忌串后,就直接转移到根节点。 若用朴素的$DP$解决,发现题目中的$len$过大,于是用矩阵快速幂优化。 先构造初始 阅读全文
posted @ 2020-03-25 21:18 lhm_liu 阅读(417) 评论(0) 推荐(0)
摘要:先证明一个等式: \[ \large \binom{n}{i}\binom{i}{j} = \binom{n}{j}\binom{n-j}{i-j} \] 左边的组合意义是从 \(n\) 里选 \(i\),再从 \(i\) 里选 \(j\),右边是先选出 \(j\),再选出 \(i\)。 形式一 \ 阅读全文
posted @ 2020-03-22 23:10 lhm_liu 阅读(225) 评论(0) 推荐(0)
摘要:定义 设全集为 \(U=\{ 0,2,\dots,n-1 \}\),设 \(F\) 为一个域,称 \(f:2^U \to F\) 为 \(F\) 上的一个集合幂级数。对于每个 \(S \subseteq 2^U\),记 \(f_S\) 为 \(S\) 代入 \(f\) 后的函数值,也称其为该集合幂级 阅读全文
posted @ 2020-03-22 21:37 lhm_liu 阅读(625) 评论(0) 推荐(0)
摘要:设$\max(S)$为集合S中的最大值,$\min(S)$为集合S中的最小值,可得 $$\max(S)=\sum_{T\subseteq S}( 1)^{| T|+1}\min(T)$$ $$\min(S)=\sum_{T\subseteq S}( 1)^{|T|+1}\max(T)$$ 使用时要保 阅读全文
posted @ 2020-03-22 11:15 lhm_liu 阅读(218) 评论(0) 推荐(0)
摘要:构建基尔霍夫矩阵,基尔霍夫矩阵的任意一个代数余子式是所有生成树的边权积的和,也就是求的是$\sum\limits_T\prod\limits_{e\in T}v_e$ 无向图 基尔霍夫矩阵为度数矩阵减去邻接矩阵 任意去掉一行一列,所得到的矩阵的行列式即为所求 有向图 外向树为入度矩阵减去邻接矩阵 内 阅读全文
posted @ 2020-03-20 23:42 lhm_liu 阅读(592) 评论(0) 推荐(0)
摘要:首先可以发现,当所有巧克力豆在最后一个瓶子中时,就无法再操作了,此时为必败状态。 注意到,对于每个瓶子里的巧克力豆,是可以在模$2$的意义下去考虑的,因为后手可以模仿先手的操作,所以就将巧克力豆个数转化为了$0$或$1$。 再考虑分裂的过程,位置为$i$的巧克力豆,要分裂到位置$i$往后的两个位置, 阅读全文
posted @ 2020-03-17 00:12 lhm_liu 阅读(219) 评论(0) 推荐(0)
摘要:对于本题这样的多字符串的子串匹配问题,其实用广义后缀自动机就可以很好的解决,感觉会比普通的后缀自动机做法方便一些。 首先记录出每个节点被多少个字符串更新,也就是记录每个节点有多少个字符串能到达它,可以通过在$Parent$树上求子树和处理出。 若所有字符串都能到达一个节点,也就是该节点所对应的串为所 阅读全文
posted @ 2020-03-11 10:29 lhm_liu 阅读(135) 评论(0) 推荐(0)