Loading

摘要: CF191C 树上差分模板题。 CF165E 对每个 \(i\),随便求一个 \(j\),使得 $ a_i \& a_j = 0, i \neq j $。 注意到题目要求,以及值域较小,考虑 SOSDP,即求出 \(f(mask)\) 为任意两个下标 \(i, j\),满足 \(a_i \subse 阅读全文
posted @ 2026-09-12 17:40 Trent900 阅读(5) 评论(0) 推荐(0)
摘要: ARC229A 思考操作的本质是什么:如果我们先构造一个全 \(R\) 字符串,然后在所有空隙里插入 A 或 C,那么一次操作就是将 AC 交换成 CA。 因此我们考虑构造一个长度为 \(99\) 的字符串。所有偶数位都是 R,奇数位上是 A 或 C。假设 C \(<\) A,\(f(S)\) 即为 阅读全文
posted @ 2026-09-07 21:04 Trent900 阅读(27) 评论(0) 推荐(1)
摘要: 明天就要去学校住宿了,没机会玩了。 阅读全文
posted @ 2026-08-30 21:44 Trent900 阅读(25) 评论(0) 推荐(1)
摘要: 很简单的一场。 ABC473A signed main(){ ios::sync_with_stdio(0), cin.tie(0); int n, ans = 0; cin >> n; for(int i = 1; i <= n; i ++){ int x; cin >> x; if(i > n 阅读全文
posted @ 2026-08-30 00:01 Trent900 阅读(118) 评论(0) 推荐(2)
摘要: 一道有意思的 ad-hoc,难点在于模拟。 这个限制非常强:如果不吃的话游戏直接结束,就吃不到了。那么肯定是吃了不会寄就吃。 那么显然,如果吃完之后不是最小值,那肯定不会寄,一定吃。 如果吃完之后是最小值,那么就看一下她吃完之后下一个最大的蛇会不会选择吃。 那么解法其实很显然了:假如现在剩下 \(i 阅读全文
posted @ 2026-08-29 11:59 Trent900 阅读(18) 评论(0) 推荐(0)
摘要: 题意:有一个数组,如果一个区间 \([l, r]\) 满足 \(\exists k \in (l, r), a_l \oplus a_r = \oplus a_k\),那么可以将这个区间压缩成一个数 \(\bigoplus_{l \le i \le r} a_i\)。 我们将 \(\bigoplus 阅读全文
posted @ 2026-08-29 11:58 Trent900 阅读(7) 评论(0) 推荐(0)
摘要: 被「模拟赛 T4 + 神秘部分分」骗了压根没想推式子,怎么回事呢? 观察 到 \(k\) 的值域很小,直接枚举有多少个竖着的 \(2 \times 1\) 的隔板。进一步地,我们枚举这几个隔板把 \(2 \times n\) 的长条分成了几段。 模仿 为啥要枚举分成几段?考虑现在我们需要在总长度为 阅读全文
posted @ 2026-08-27 22:49 Trent900 阅读(18) 评论(0) 推荐(1)
摘要: 灵活的套路题。 题意就是,有一个带点权的树。定义一种划分方案的得分为每个连通块中点的异或和之积。求所有划分方案的得分之和。 部分分的提示其实很明显:DP + 拆位。但是咋做呢? 我一开始的想法是对每一位单独计算贡献最后相乘,但是这样算会漏掉跨位的乘积,非常不好。 于是不能跨位算,我们先设计 \(f( 阅读全文
posted @ 2026-08-27 21:05 Trent900 阅读(22) 评论(0) 推荐(1)
摘要: 虽迟但到。 树链剖分 其实是一个很简单的技巧。 考虑如下问题:维护一棵树,支持路径加操作与路径和查询。 我们没办法直接维护,所以树剖的作用就是:将树划分成若干条链,使得任意两点之间的路径最多经过 \(\mathcal{O}(\log n)\) 条链。 这样,我们就有可行方案了:对每条链分别使用数据结 阅读全文
posted @ 2026-08-27 13:00 Trent900 阅读(18) 评论(0) 推荐(0)
摘要: 区间 DP 超值全家桶。 题意就是,有一个数组,每次删去一段只有一种颜色的区间,剩下的拼接起来(重新编号),求所不同的 \([l, r]\) 序列个数, \(n \le 50\)。 首先显然一种 \([l,r]\) 序列只能对应一种操作方案,这个要提前想好。然后想办法求操作方案数。 我会 DP! 对 阅读全文
posted @ 2026-08-26 21:22 Trent900 阅读(14) 评论(0) 推荐(1)