随笔分类 -  题目

摘要:考虑拆贡献。 显然答案可以拆成对于所有 $s_i$ 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 #include <bits/stdc++.h> #define FL(i, a, b) for(int i = 阅读全文
posted @ 2023-12-10 08:35 徐子洋 阅读(7) 评论(0) 推荐(0)
摘要:题目链接 考虑容斥:拿满足条件 \(1\) 的方案数减去满足条件 \(1\) 但不满足条件 \(2\) 的方案数就是答案。 满足条件 \(1\) 但不满足条件 \(2\) 的方案可以用 \(\text{Manacher}\) 算法 \(O(n)\) 计算。 对于满足条件 \(1\) 的总方案数,我们 阅读全文
posted @ 2023-12-09 19:51 徐子洋 阅读(20) 评论(0) 推荐(0)
摘要:题目链接 对于一种元素 \(v\),假设它在给出可重集合中出现了 \(t\) 次,那么容易把它表示成基础的生成函数形式:\(1+x+x^2+x^3+\dots+x^t\)。 显然,把所有元素的生成函数卷一下就是答案。但是这样最坏情况为 \(O(nm\log n)\)的,不能通过这道题。 在思考优化方 阅读全文
posted @ 2023-12-09 09:44 徐子洋 阅读(15) 评论(0) 推荐(0)
摘要:题目链接 首先观察到这个形式,容易发现它和常规的卷积不同点就在于:题目给出的求和定义中,\(\sum\) 符号下面的式子是 \(i+j<N\) 求和而不是 \(i+j=N\)。 为了方便计算,我们引入: \[G_n=\sum_{i+j<N}F_iF_j \]我们发现,假设所有 \(F_{1\sim{ 阅读全文
posted @ 2023-11-27 17:35 徐子洋 阅读(54) 评论(0) 推荐(0)
摘要:简要题解:考虑按照题意模拟,能消除就消除,否则入栈。每维护一个元素的加入后,用哈希维护当前栈的状态,最后就遍历哈希表(假设它是 $x$ 个位置的栈序列),拿所有 $C_{x}^{2}$ 求个和即可。 解题思路 考虑先借助可消除序列的构造方式对括号序列的形态进行观察: 假若 A 是一个可消除序列,那么 阅读全文
posted @ 2023-10-24 08:55 徐子洋 阅读(14) 评论(0) 推荐(0)
摘要:考虑容斥。 我们记至少有 \(i\) 个指标相同的年份对数为 \(f_i\),那么最终答案为: \[\sum_{i=k}^n (-1)^{i-k}\times f_i \]\(f_i\) 可以通过枚举状态,之后通过字符串哈希来计数得到(注意指标只有 \(6\) 个)。字符串哈希可以把 base 设为 阅读全文
posted @ 2023-10-18 15:47 徐子洋 阅读(14) 评论(0) 推荐(0)
摘要:题目链接 考虑将所有的 \(i\) 指向 \(a_i\),将会建出一张基环内向树。 对于一个节点 \(i\),假若最终我们未圈出它,那么我们称我们选择了 \(i\) 的出边;否则是未选择。 不难发现,最终答案合法当且仅当:所有未选择出边的点,它的入边最少有一条被选择了;所有选择了出边的点,它所有的入 阅读全文
posted @ 2023-10-09 18:18 徐子洋 阅读(71) 评论(0) 推荐(0)
摘要:题目链接1,题目链接2 题目的“绝妙置换”定义较为复杂,我们无法直接进行转化。考虑列举出一些必要条件,从中寻找思路: 对于树上的一条边 \((x,y)\),其中 \(x\) 为 \(y\) 的父节点。那么 \(x\) 在绝妙置换中的位置必定小于 \(y\) 的位置。 对于同个颜色节点的父亲集合,在绝 阅读全文
posted @ 2023-10-02 22:01 徐子洋 阅读(57) 评论(0) 推荐(0)
摘要:考虑从小到大加入每种权值,同时维护一个状压数组 $f$。 具体的,我们对于在输入矩形中出现过的数,直接转移;否则枚举当前的数放在哪一位,判断合法性之后转移就行了。 判断合法其实有一种比较简便的方法,每次加入一个数时,如果他在某个三元组的中间位置,且左右的点恰好填了一个,那么就证明这个三元组是单调的, 阅读全文
posted @ 2023-09-29 11:49 徐子洋 阅读(10) 评论(0) 推荐(0)
摘要:题目链接 这道题一个朴素的思路就是:维护 \(f_{i,j}\) 表示第 \(i\) 轮后 \(x=j\) 的方案数。时间复杂度 \(O(k\times 2^k)\)。显然过不了。 我们尝试寻找一个能抛开 \(x\) 的值域的做法。不妨重新设 \(f_{i,j}\) 表示第 \(i\) 轮结束时的 阅读全文
posted @ 2023-09-29 08:28 徐子洋 阅读(30) 评论(0) 推荐(0)
摘要:题目链接 显然答案下界为 \(\lfloor\frac{n}{2}\rfloor\)。采用一种对着题意模拟的策略:假设我们初始的区间为 \([l,r]\),然后逐步向左平移,也就是:\([l,r],[l-1,r-2],[l-2,r-4],\dots\) 直到碰到边界(平移的次数 \(+1\) 就等于 阅读全文
posted @ 2023-09-25 17:21 徐子洋 阅读(39) 评论(0) 推荐(0)
摘要:题目链接 关于这类问题的一个经典的套路就是:利用差分将区间翻转转换为点对翻转。 既然操作差分了,那么原序列初始时也得以差分的形式进行表示。我们发现,原序列中一定恰好有 \(4\) 个 \(1\)。 根据题目,翻转操作就是对两个端点采取异或运算。不妨把所有这样的两个端点连上一条边权为 \(r-l+1\ 阅读全文
posted @ 2023-09-25 08:03 徐子洋 阅读(22) 评论(0) 推荐(0)
摘要:关于这类问题的一个经典的套路就是:利用差分将区间翻转转换为点对翻转。 既然操作差分了,那么原序列初始时也得以差分的形式进行表示。我们发现,原序列中一定恰好有 $4$ 个 $1$。 根据题目,翻转操作就是对两个端点采取异或运算。不妨把所有这样的两个端点连上一条边权为 $r-l+1$ 的边,我们发现,一 阅读全文
posted @ 2023-09-25 08:00 徐子洋 阅读(14) 评论(0) 推荐(0)
摘要:题目链接 一个比较显然的思路就是:我们按照右端点从小到大的顺序(右端点相同按左端点从大到小)去考虑每个好的区间。 由于是连通性问题,不难想到用并查集去实时维护连通性。 根据定义,一个好的区间必定对应了一个连通块;我们考虑的是好的区间,所以当前并查集中的每个连通块必定都是一个区间。而在加入某个点前,这 阅读全文
posted @ 2023-09-24 19:22 徐子洋 阅读(16) 评论(0) 推荐(0)
摘要:题目链接 注:为了方便叙述,在下文中,我们用 \(\text{next}(i)\) 表示第 \(i\) 个人右边的食物,\(\text{pre}(i)\) 表示第 \(i\) 个人左边的食物。 看到题目时一个直观的想法:对于所有 \(c_{\text{pre}(i)}\geq c_{\text{ne 阅读全文
posted @ 2023-09-22 14:31 徐子洋 阅读(35) 评论(0) 推荐(1)
摘要:题目链接 这类题着重于抓住充分条件进行构造。 解决这道题,就得抓住题目中最为特殊的条件:\(s_c\leq {n_c}^2\)。我们不难找出一种关于它的充分条件:\(\max_{u\in S_c}d_u\leq n_c\)。 尝试在此充分条件下设计构造方法:不妨按照 \(d_u\) 进行排序,之后从 阅读全文
posted @ 2023-09-22 10:47 徐子洋 阅读(11) 评论(0) 推荐(0)
摘要:题目链接1、题目链接2 注意到这道题本质就是一个矩形求和矩形赋值的操作。其中满足:对于任意一个点,每次赋予的权值是单调递增的。 这看起但就像是一个二维线段树能做的范畴。但是众所周知,二维线段树的外层无法进行标记上传操作(无法 pushup),故而这题我们考虑标记永久化。同时,为了简化问题,我们先关心 阅读全文
posted @ 2023-09-10 18:10 徐子洋 阅读(15) 评论(0) 推荐(0)
摘要:题目链接 以下设 \(B\) 为一个阈值,同时也表示值域分块的块长。 先考虑所有 \(b\) 都不为 \(0\) 的情况。对于一组询问,我们设一个 \(x\) 表示:当前已搬完所有 \(a\leq x\) 的砖。那么每次只可能是以下两种情况之一: 有至少一摞砖在当前这个单位时间内被搬完 拿 \(x\ 阅读全文
posted @ 2023-09-09 13:23 徐子洋 阅读(86) 评论(0) 推荐(0)
摘要:题目链接 先考虑如何判定一个集合是否存在两个异或和相同的子集 \(s,t\),不然解决这道题就是无稽之谈。 根据异或的优良性质,不妨在 \(s,t\) 中分别去掉 \(s\cap t\),之后从 \(s\) 中任意移动 \(|s|-1\) 个元素到 \(t\) 中去,易发现此时两个集合的元素异或和还 阅读全文
posted @ 2023-09-09 12:00 徐子洋 阅读(105) 评论(0) 推荐(0)
摘要:[原题链接](https://codeforces.com/problemset/problem/845/G) 不妨先了解几个前置知识/引理: 异或的抵消性质: * $a\oplus a=0$ * $\forall b[b\not= a],a\oplus b\not=0$ * $(a\oplus b 阅读全文
posted @ 2023-09-05 14:51 徐子洋 阅读(36) 评论(0) 推荐(0)