摘要:
传送门 考虑树套树 外层线段树对颜色开,在上面跑线段树二分 内层线段树对序列下标开,存外层线段树节点所包含的颜色在序列上的所有出现位置 然后在内层线段树上扫描线 关于形如「出现次数 ⩽ 的数的出现次数之和」或给它再带个权的限制: 一个常见处理方式是扫描线,从右到左前 \( 阅读全文
摘要:
传送门 艹,我直到发现题解死活读不懂才发现自己题读错了 发现一条 (u, t), (t, v) 的路径可以合并成一条 (u, v) 的路径 所以为了最小化总路径数每个点要么只当起点要么只当终点 然后发现每条边被正反经过的次数抵消后的值的绝对值是容易求的 \[a_u\gets a_u- 阅读全文
摘要:
传送门 先来口胡一个做法: 发现 Dave 选菜的过程实际上是在原串中匹配一个子序列的过程 那么单次询问就有一个 DP: 令 f_{i, j} 为在原串中匹配到位置 i,在模式串中匹配到位置 j 的方案数 做一次是 O(nm) 的 现在有多次询问,发现这个 DP 在一 阅读全文
摘要:
传送门 专题里放错题了吧? 发现就一模拟 贪心选数的时候在值域上从小到大选 选了一个数后位置在它左下和右上的权值都不能选 发现这两个覆盖分别有单调性,分别开个数组存 然后发现可以用一个值在 T 中的下标还原其位置 然后就做完了 复杂度 O(nm),常数莫名其妙的大 点击查看代码 #i 阅读全文
摘要:
传送门 等退役了,我要去把 CC 协议通读一遍然后尝试搬一个基金会版式 先口胡(暴力)做法: 发现很矩阵乘,那就矩阵乘,没法优化(摊手 然后康题解,Dr.x义x 说它是可以优化的 于是尝试入门一些线性代数 link,link and link 所有可以表示为给定向量线性组合的向量的集合叫做张成的空间 阅读全文
摘要:
传送门 发现就是 Dilworth 定理 但是要输出方案,还要求可行点以及方案数 首先 Dilworth 定理转化: DAG 最大独立集 = 最小链覆盖 关于 DAG 最小链覆盖: 一个做法是拆点二分图最大匹配 注意到每个点最多一个入度一个出度,那么就要最大化有出度的点个数 那么将每个点拆为入点和出 阅读全文
摘要:
传送门 涉及到最大/小化两个字符串的字典序时,可以发现当某个前缀相同时应该比较后缀,所以可以考虑从后往前 DP 那么从后往前 DP 令 f_i 为从 [i, n] 中能得到了最大子序列 那么转移考虑删不删 i 具体还是见题解,[敷衍脸] 点击查看代码 #include <bi 阅读全文
摘要:
传送门 自闭了啥也不会 置换以及类似的操作是有逆变换的,写成 p^{-1} 的形式很适合找规律( 完全参考题解 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 1000 阅读全文
摘要:
传送门 首先……怎么找出所有串之间的包含关系呢? 这个人太弱了只会根号找 所以当他赛后听说用 AC 自动机可以 O(\sum len) 的时候整个人傻掉了( 考虑对 AC 自动机上每个节点维护从这个点向上跳能跳到的第一个结束节点 然后这个东西可以在建 AC 自动机的时候处理出来 于是可以建立 阅读全文
摘要:
传送门 能把题面写得这么难懂也是难为出题人了( 发现质因子之间是独立的 每个位置每种质因子只有选和不选两种可能 发现那个贡献其实就是两个数的某个质因子一个选一个不选有额外贡献 经典问题,最小割即可 然而贡献是乘积需要取对数化为加法 实数网络流 \tt INF 开太大会导致小数位精度很低,最好 阅读全文