12 2023 档案

摘要:题目链接 很显然,按照右端点从小到大排序,对于每段区间尽量地贪心放在靠右的位置即可。 中间用 std::set 维护当前还是 0 的位置,以及树状数组维护区间 1 的个数。 点击查看代码 #include <bits/stdc++.h> #define FL(i, a, b) for 阅读全文
posted @ 2023-12-31 21:30 徐子洋 阅读(8) 评论(0) 推荐(0) 编辑
摘要:题目链接 考虑拆贡献。 显然答案可以拆成对于所有 si 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 点击查看代码 #include <bits/stdc++.h> #define FL(i, a, 阅读全文
posted @ 2023-12-31 21:28 徐子洋 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目链接 题目本质就是对一个多项式 F 进行等比数列求和得到 GFi 表示 i 在序列 A 中的出现次数),求 G 所有下标 >0 的位置的权值和。 显然,M 固定就可以直接做了。但 M 不固定,所以我们只能暴力枚举 \(M 阅读全文
posted @ 2023-12-31 21:26 徐子洋 阅读(13) 评论(0) 推荐(0) 编辑
摘要:定义与形式 给定一个大小为 n×n 的矩阵 A,则行列式 det(A)=|A|=p(1)π(p)Ai,pi其中的 p 是一个 1n 的排列,π(p) 为排列 p阅读全文
posted @ 2023-12-30 16:27 徐子洋 阅读(160) 评论(0) 推荐(0) 编辑
摘要:考虑拆贡献。 显然答案可以拆成对于所有 si 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 #include <bits/stdc++.h> #define FL(i, a, b) for(int i = 阅读全文
posted @ 2023-12-10 08:35 徐子洋 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目链接 考虑容斥:拿满足条件 1 的方案数减去满足条件 1 但不满足条件 2 的方案数就是答案。 满足条件 1 但不满足条件 2 的方案可以用 Manacher 算法 O(n) 计算。 对于满足条件 1 的总方案数,我们 阅读全文
posted @ 2023-12-09 19:51 徐子洋 阅读(10) 评论(0) 推荐(0) 编辑
摘要:题目链接 对于一种元素 v,假设它在给出可重集合中出现了 t 次,那么容易把它表示成基础的生成函数形式:1+x+x2+x3++xt。 显然,把所有元素的生成函数卷一下就是答案。但是这样最坏情况为 O(nmlogn)的,不能通过这道题。 在思考优化方 阅读全文
posted @ 2023-12-09 09:44 徐子洋 阅读(10) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示