12 2023 档案
摘要:题目链接 很显然,按照右端点从小到大排序,对于每段区间尽量地贪心放在靠右的位置即可。 中间用 std::set 维护当前还是 的位置,以及树状数组维护区间 的个数。 点击查看代码 #include <bits/stdc++.h> #define FL(i, a, b) for
阅读全文
摘要:题目链接 考虑拆贡献。 显然答案可以拆成对于所有 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 点击查看代码 #include <bits/stdc++.h> #define FL(i, a,
阅读全文
摘要:题目链接 题目本质就是对一个多项式 进行等比数列求和得到 ( 表示 在序列 中的出现次数),求 所有下标 的位置的权值和。 显然, 固定就可以直接做了。但 不固定,所以我们只能暴力枚举 \(M
阅读全文
摘要:考虑拆贡献。 显然答案可以拆成对于所有 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 #include <bits/stdc++.h> #define FL(i, a, b) for(int i =
阅读全文
摘要:题目链接 对于一种元素 ,假设它在给出可重集合中出现了 次,那么容易把它表示成基础的生成函数形式: 。 显然,把所有元素的生成函数卷一下就是答案。但是这样最坏情况为 的,不能通过这道题。 在思考优化方
阅读全文