摘要: 不知道为啥有断更了一周... E woc,怎么跟我出的题目这么像 先把字符串扔到一个 Trie 里面,然后对于每一个点我们考虑这一个点到根节点组成的字符串能是多少对字符串的最长公共前缀。 我们定义 \(cnt_u\) 表示共有多少个字符串的结尾在以 \(u\) 为根的子树内。对于 \(u\) 节点, 阅读全文
posted @ 2024-05-11 22:23 sqrtqwq 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 引入 Kosaraju 算法用于求解强连通分量,在稠密图下复杂度会比 tarjan 算法要优秀。(? 过程 对整个图进行搜索,并且将没一个顶点按照 DFS 序压入栈中。 建一个反图。 对于栈中的每一个点再反图上跑一遍 DFS,现在跑出来的子图即为一个强连通分量。 标记这几个点。 重复执行操作3,4, 阅读全文
posted @ 2024-05-03 21:58 sqrtqwq 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 我多久没更新这个系列了啊 E 把格子分成两类,每一类之间的坐标均可互相走到。 然后将这里面的点都旋转 \(45\) 度,于是这个问题就被转换成曼哈顿距离的问题了。 我们可以把 \(x\) 和 \(y\) 拆开计算。 然后我们排个序,求个差分,然后对于每一个区间算贡献即可。 code F 非常简单的树 阅读全文
posted @ 2024-04-27 22:16 sqrtqwq 阅读(77) 评论(0) 推荐(1) 编辑
摘要: problem \(\text{task 1}\) 要求: 输入:\(a,b\)。 输出:\(-2a-2b\)。 数据范围:\(|a|,|b| \le 10^9\)。 做法: 先把 \(-2\) 提出来,所以得 \(-2a-2b=-2(a+b)\)。 然后我们可以把 \(2\) 变成 \(1\) 右 阅读全文
posted @ 2024-04-19 20:33 sqrtqwq 阅读(3) 评论(0) 推荐(0) 编辑
摘要: problem 算法1 我会暴力!!! 直接枚举右上角和左下角,然后计算答案,使用前缀和优化后时间复杂度为 \(O(n^4)\)。 算法2 我会分治!!!。 我们知道答案就是左边+右边+两边都有的个数。 左右递归求解即可,所以考虑两边都有的个数。 我们知道满足有 \(k\) 个 \(1\) 的可能为 阅读全文
posted @ 2024-04-14 22:31 sqrtqwq 阅读(2) 评论(0) 推荐(0) 编辑
摘要: fool 阅读全文
posted @ 2024-04-05 11:28 sqrtqwq 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 省流:输+赢 D 按位分析。 既然两个数异或后的结果是 \(C\),那就考虑 \(C\) 中为 \(1\) 的数中有几个是在 \(X\) 当中的。 假如 \(\text{a - popcnt(X) == b - popcnt(Y)}\),那么在 \(C\) 中为 \(0\) 的数中随便选 \(\te 阅读全文
posted @ 2024-03-30 22:26 sqrtqwq 阅读(63) 评论(0) 推荐(0) 编辑
摘要: CF11841E1 & blog 尽然想让第一条边最大且这条边在最小生成树中,那么这条边就需要尽量晚。 但是假如加上一条边 \(i\) 可以使 \(u_1\) 和 \(v_1\) 联通并且第 \(w_i \le w_1\) 那么我们就会舍弃原本第一条边,使用第 \(i\) 条边。 所以第一条边的比安 阅读全文
posted @ 2024-03-29 13:48 sqrtqwq 阅读(1) 评论(0) 推荐(0) 编辑
摘要: D 枚举是哪一位相同,情况为 \(00\) 还是 \(11\),然后用前缀和和后缀和求一下即可。 \(pre_{j,i}\) 表示第一位为 \(j\),前 \(i\) 位的每两个相同的字符均不相同的情况,\(suf\) 同理。 code E 从后往前考虑。 每一种颜色能染上这一行 / 列没有被染色的 阅读全文
posted @ 2024-03-23 22:21 sqrtqwq 阅读(20) 评论(0) 推荐(0) 编辑
摘要: problem & blog 由于看到和三进制有关的操作,可以想到建造每个结点都有三个儿子的 Trie。考虑维护两种操作。 1.Salasa 舞 对于这种操作,就是把每一个节点的第一个儿子和第二个儿子交换。所以两个节点打个标记即可 2.Rumba 舞 本质即为 \(0 \to 1,1 \to 2,2 阅读全文
posted @ 2024-03-22 14:04 sqrtqwq 阅读(1) 评论(0) 推荐(0) 编辑