摘要: 题意: 戳这里 分析: 建出SAM,然后 \(dfs\) 将不好字符的转移代价设置为 \(1\) ,好的字符的转移代价设置为 \(0\) 这样题意等价于求本质不同的长度小于等于 \(k\) 的字符串个数,\(O(nk)\) 的转移就行了 代码: #include<bits/stdc++.h> usi 阅读全文
posted @ 2021-01-02 11:08 youth518 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题意: 戳这里 分析: 一看多串匹配直接上广义 \(SAM\) ,每一个节点分别维护一下三个串的 \(siz\) 这样答案每一个点对答案的贡献就是 长度在 \(len[link[x]]\) 到 \(len[x]\) 之间每一个长度的匹配数都会加上 \(siz[a]*siz[b]*siz[c]\) 不 阅读全文
posted @ 2021-01-02 11:04 youth518 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 题意: 戳这里 分析: 模板题 题意转化一下,\(ans=总点数-最大边数=总点数-最大流\), 我们把每一个点拆成入点和出点两部分,原点向每一个入点连一条边,每一个出点向汇点连一条边,对于原图上存在的一条边 \(x\to y\) 由 \(x\) 的入点向 \(y\) 的出点连一条边,这些边的流量都 阅读全文
posted @ 2021-01-02 10:56 youth518 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题意: 戳这里 分析: 题目相当于给定一张DAG,求最少路径覆盖,这不就是网络流24题里的那个最小路径覆盖的弱化版吗? 根据题意和最小路径覆盖的那个题的方法,我们把每一个小镇拆成入点和出点两个,然后每一个入点向能到达的小镇的出点连边,流量为 \(1\) ,同时原点向每一个小镇的入点连边,每一个小镇的 阅读全文
posted @ 2021-01-02 10:48 youth518 阅读(64) 评论(0) 推荐(0) 编辑