12 2023 档案
摘要:题目链接 很显然,按照右端点从小到大排序,对于每段区间尽量地贪心放在靠右的位置即可。 中间用 std::set 维护当前还是 \(0\) 的位置,以及树状数组维护区间 \(1\) 的个数。 点击查看代码 #include <bits/stdc++.h> #define FL(i, a, b) for
        阅读全文
                
摘要:题目链接 考虑拆贡献。 显然答案可以拆成对于所有 \(s_i\) 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 点击查看代码 #include <bits/stdc++.h> #define FL(i, a, 
        阅读全文
                
摘要:题目链接 题目本质就是对一个多项式 \(F\) 进行等比数列求和得到 \(G\)(\(F_i\) 表示 \(i\) 在序列 \(A\) 中的出现次数),求 \(G\) 所有下标 \(>0\) 的位置的权值和。 显然,\(M\) 固定就可以直接做了。但 \(M\) 不固定,所以我们只能暴力枚举 \(M
        阅读全文
                
摘要:定义与形式 给定一个大小为 \(n\times n\) 的矩阵 \(A\),则行列式 \[\det(A)=|A|=\sum_{p} (-1)^{\pi(p)} \prod A_{i,p_i} \]其中的 \(p\) 是一个 \(1\sim n\) 的排列,\(\pi(p)\) 为排列 \(p\) 的
        阅读全文
                
摘要:考虑拆贡献。 显然答案可以拆成对于所有 $s_i$ 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 #include <bits/stdc++.h> #define FL(i, a, b) for(int i =
        阅读全文
                
摘要:题目链接 考虑容斥:拿满足条件 \(1\) 的方案数减去满足条件 \(1\) 但不满足条件 \(2\) 的方案数就是答案。 满足条件 \(1\) 但不满足条件 \(2\) 的方案可以用 \(\text{Manacher}\) 算法 \(O(n)\) 计算。 对于满足条件 \(1\) 的总方案数,我们
        阅读全文
                
摘要:题目链接 对于一种元素 \(v\),假设它在给出可重集合中出现了 \(t\) 次,那么容易把它表示成基础的生成函数形式:\(1+x+x^2+x^3+\dots+x^t\)。 显然,把所有元素的生成函数卷一下就是答案。但是这样最坏情况为 \(O(nm\log n)\)的,不能通过这道题。 在思考优化方
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号