随笔分类 - OI
摘要:题意: 戳这里 分析: 建出SAM,然后 \(dfs\) 将不好字符的转移代价设置为 \(1\) ,好的字符的转移代价设置为 \(0\) 这样题意等价于求本质不同的长度小于等于 \(k\) 的字符串个数,\(O(nk)\) 的转移就行了 代码: #include<bits/stdc++.h> usi
阅读全文
摘要:题意: 戳这里 分析: 一看多串匹配直接上广义 \(SAM\) ,每一个节点分别维护一下三个串的 \(siz\) 这样答案每一个点对答案的贡献就是 长度在 \(len[link[x]]\) 到 \(len[x]\) 之间每一个长度的匹配数都会加上 \(siz[a]*siz[b]*siz[c]\) 不
阅读全文
摘要:题意: 戳这里 分析: 模板题 题意转化一下,\(ans=总点数-最大边数=总点数-最大流\), 我们把每一个点拆成入点和出点两部分,原点向每一个入点连一条边,每一个出点向汇点连一条边,对于原图上存在的一条边 \(x\to y\) 由 \(x\) 的入点向 \(y\) 的出点连一条边,这些边的流量都
阅读全文
摘要:题意: 戳这里 分析: 题目相当于给定一张DAG,求最少路径覆盖,这不就是网络流24题里的那个最小路径覆盖的弱化版吗? 根据题意和最小路径覆盖的那个题的方法,我们把每一个小镇拆成入点和出点两个,然后每一个入点向能到达的小镇的出点连边,流量为 \(1\) ,同时原点向每一个小镇的入点连边,每一个小镇的
阅读全文
摘要:题意: 戳这里 分析: 枚举一下 \(n\) 的位置,分成左右两段,然后将每一个能看见的建筑物和它会挡住的建筑物分成一组,然后每一组内部就是一个圆排列,因为默认最大的那个建筑是分割点,所以每一组内部就是一个圆排列 按照第一类斯特林数的递推公式 \(s[i][j]=s[i-1][j-1]+(i-1)*
阅读全文
摘要:题意: 戳这里 分析: 推柿子 我们记 \(m\) 为值域大小, \(c_x\) 为 \(x\) 的个数 \[ \sum_{i=1}^n\sum_{j=1}^nlcm(A_i,A_j) \\ =\sum_{i=1}^m\sum_{j=1}^m lcm(i,j)\times c_i\times c_j
阅读全文
摘要:题意: 戳这里 分析: 对于要求的东西我们可以 DP 求一下,我们设 \(f[i]\) 表示以 \(i\) 结尾的 \(AA\) 类型的串的个数,\(g[i]\) 表示以 \(i\) 开头的 \(AA\) 类型的串的个数 \(ans=\sum f[i]\times g[i+1]\) 所以我们现在考虑
阅读全文
摘要:题意: 戳这里 分析: 题目相当于让我们求树上有多少本质不同的路径,但是我们发现直接建 \(trie\) 树的话 \(M\) 字型的路径,没有办法表示出来 然后我们发现题目有这么一句话 由于太阳花田的结构比较特殊,只与一个空地相邻的空地数量不超过 20 个 ,这句话提醒了我们换个角度思考问题,我们查
阅读全文
摘要:题意: 戳这里 分析: 模拟赛出了这道题的弱化版,把矩阵从 \(n^2\) 变成了 \(2\times n\) 的,被巨佬们用模拟退火退过去了。。。 现在我们考虑正解,题意等价于,从矩阵中选出 \(n\) 个点,满足任意两个点不属于同一行或列,求 \(\frac{\sum a}{\sum b}\)
阅读全文
摘要:题意: 戳这里 分析: 两个询问分开考虑: 求每次有多少只 喵 被点了名 我们一看见子串,多个模式串,第一反应就是广义SAM,可惜广义SAM做不了,因为第一个操作限制了每一个人每次只能答到一次,即每种类型的串只看做匹配一次 如果不考虑这个限制条件的话,那么我们可以建出一个广义SAM,或者用分隔符将字
阅读全文
摘要:题意: 戳这里 分析: 我们观察题面发现这个式子长得很像树上两点间的距离,这就让我们联想到建一颗 \(SAM\),然后构建出 \(parent\) 树,原式等价于求 \(parent\) 树上任意两点间距离的和值 典型的树上 \(dp\),我们考虑每一条边的贡献,每一条边对原式的贡献等价于 \(经过
阅读全文
摘要:题意: 戳这里 分析: 一看见本质不同的字符串 \(\to\) \(SAM\) 再一看,字符串集合 \(\to\) 广义 \(SAM\) 所以这个题的做法就是,建一颗广义 \(SAM\) , \(dfs\) 这个 \(SAM\) ,把只出现了一次的点标起来,它的贡献就是 \(len[x]-len[l
阅读全文
摘要:题意: 戳这里 分析: 暴力 每次交换之后,\(n\log\) 的求逆序对,复杂度 \(O(mn\log)\) 正解 我们发现每次交换 \(l\) 和 \(r\) 的时候,影响的区间只有 \([l,r]\) 具体来说 \(\Delta = \sum_{i=l+1}^{r-1} [a_i>a_l]+\
阅读全文
摘要:题意: 戳这里 分析: 暴力: 每一次枚举符合要求的边,加入并查集,然后查询 两点是否在同一个并查集内 \(a\) 的最大值是否等于要求 \(b\) 的最大值是否等于要求 复杂度 \(O(qm\log)\) 正解 对于这种带有两种权值的问题,我们通常的做法就是,将一维排好序,对另一维进行查询 而对于
阅读全文
摘要:P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查 描述: \(n\) 个人,每个人有一个状态,存在 \(m\) 对朋友,每个人可以翻转状态,求翻转次数+冲突的朋友对数的最小值 模型: 原点向 \(0\) 状态的人连一条 \(inf\) 的边,\(1\) 状态向汇点连一条
阅读全文
摘要:题面: 戳这里 分析: 暴力: 暴搜出每种状态下每个人的最优决策,期望得分:\(30pts\) 正解 我们通过模拟可以发现,最终选择出来的状态一定是呈现出梯形的样子,所以我们联想到针对形状的 轮廓线DP,我们规定横边用 \(0\) 表示,竖边用 \(1\) 表示,每一个状态从右上到左下可表示为一组长
阅读全文

浙公网安备 33010602011771号