上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 57 下一页
摘要: 传送门 首先可以分块做 单调指针+桶排可以做到 \(O(n\sqrt n)\) 然后第一问可以用线段树维护 关于一类标记合并线段树: 当每种操作都形如「区间加上一个数」或「区间对一个数取max」时,可以在每个节点维护两个标记 \(tag1\) 和 \(tag2\) 若为叶子节点,则代表这个节点的实际 阅读全文
posted @ 2021-12-23 21:44 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 传送门 当出现形如「无向图上要求源汇点之间任意路径上只有一边被割的最小割」的限制时(确实不知道怎么抽象出模型了: 考虑一个最小割所形成的两个集合,观察样例可以发现一个割中的边有的是从S到T,有的是从T到S 而不满足题述条件的情况就是存在从T返回S的流,这样一条路径上会被割多次 于是不能存在这样的流, 阅读全文
posted @ 2021-12-23 21:31 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 传送门 采取启发式合并维护建出两棵树高为log的树 那么用其中一棵我们可以知道这个点最晚一次被置零是什么时候 用另一棵可以在每个节点上二分出在这一次置零之后的贡献 于是就做完了 点击查看代码 #include <bits/stdc++.h> using namespace std; #define 阅读全文
posted @ 2021-12-19 21:37 Administrator-09 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 传送门 求前k大的另一种思路:降维 当题目要求区间/点对第k大时,考虑对每个左端点/点维护最大的右端点/另一个点 用一个堆维护每个左端点编号及其对应的权值 每次取出并删除取到最大值的决策点,并加入次大的,重复 \(k-1\) 次即可 于是考虑对每个左端点维护所有右端点答案的最大值 发现暴力预处理左端 阅读全文
posted @ 2021-12-18 20:29 Administrator-09 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 传送门 考场上看错题当成子串,建了棵后缀树然后复杂度炸了 对原串和反串分别建出trie树,即为求同时在两棵树的给定子树内的点权和 于是dfs一棵树,建出主席树查询另一棵树dfs序范围即可 题解有另一种做法: 首先我们把N个字符串按前缀的字典序排序。然后将这个顺序下N个字符串的后缀建成一棵可持久化ti 阅读全文
posted @ 2021-12-18 20:19 Administrator-09 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 高维入侵 WC2016 论战捆竹竿 考场上看错题了,以为要求的是能形成的本质不同的字符串数,于是完全背包死活过不了样例 求的是能形成的不同长度数,可以联想到同余最短路 于是暴力的做法是求出所有boarder长度,\(O(n^2logn)\) 跑同余最短路 但显然是过不去的,于是考虑优化 有一个 \( 阅读全文
posted @ 2021-12-14 14:04 Administrator-09 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 传送门 考试的时候以为切入点应该是在sam上维护不相交子串,于是不会做 写了个暴力还忘删调试了 其实这题只需要找到两个不相交的相同子串 维护出endpos集合中的最小值和最大值就可以了 点击查看代码 #include <bits/stdc++.h> using namespace std; #def 阅读全文
posted @ 2021-12-13 20:26 Administrator-09 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 传送门 CF1063F 考场思路是将fail树加入sam形成的DAG中,这样一个串是另一个串的条件是可达另一个串 但复杂度是 \(O(n^2\sqrt n)\) 的 发现首先可以钦定选中的最短的串长度为1,且所有选中的串长度恰好相差1 于是考虑DP,令 \(dp_i\) 为恰好以点 \(i\) 为起 阅读全文
posted @ 2021-12-13 20:22 Administrator-09 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 传送门 传说中的对联算法? 另一篇题解 当出现给定一些模式串和一些文本串,询问某几个模式串被匹配了多少次时: 建出AC自动机,建出fail树 在自动机上跑文本串,每到一个节点就在对应的dfs序上+1 处理询问时直接查子树区间和即可 貌似也可以在广义SAM上跑,线段树合并维护right集合,然后查在给 阅读全文
posted @ 2021-12-12 19:47 Administrator-09 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 传送门、 当题目是求所有点对之间操作的最值的时候记得随机点对+卡时 当题目是要求最值的时候记得随机决策点+卡时 首先放到广义SAM上,就变成了要求一棵树上 当前节点权值+当前节点子树内所有点对在另一棵树上lca的深度 的最大值 关于「当前节点子树内所有点对在另一棵树上lca的深度的最值」: 注意最值 阅读全文
posted @ 2021-12-12 19:19 Administrator-09 阅读(1) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 57 下一页