随笔分类 -  题目 / CodeForces

摘要:Problem A 注意到,\(\oplus\) 运算可能让一个奇数 \(-1\),或者让一个偶数 \(+1\)。 转化后的操作如下: 花费 \(x\) 的代价让 \(a\leftarrow a+1\) 花费 \(y\) 的代价让 \(a\leftarrow a+1(\text{a is even} 阅读全文
posted @ 2025-07-06 12:15 徐子洋 阅读(37) 评论(1) 推荐(0)
摘要:Part 1:一些发现 首先我们注意到,每个数位可以几乎独立地计算贡献,不同数位的之间的联系只在于总和 \(n\)。 同时还容易发现,把两个同数位上的 \(3,3\) 或 \(3,6\),合并成一个必定不劣,可能更优。 比如说:假若存在两个数同数位上分别是 \(3,3\),我们将它们合并成一个 \( 阅读全文
posted @ 2025-07-05 08:31 徐子洋 阅读(13) 评论(0) 推荐(0)
摘要:为了叙述方便,下文使用“小C”和“小D”来代指原题面中的 Cirno 和 Daiyousei,分别是游戏中的先手和后手。 Part1:Eazy Version 题目要求不能操作的人获胜,意味着每个人都希望让对方操作的是最后一步。 可以先观察边界局面,小C何时能“一步杀”取胜。 按照 \(w_u\) 阅读全文
posted @ 2025-07-03 17:15 徐子洋 阅读(10) 评论(0) 推荐(0)
摘要:Part1:观察描述 对于任意次操作后的字符串,其每个位置都对应原序列一段区间的 \(\max\)。我们记当前第 \(i\) 个数来源于为 \([l_i,r_i]\)。 初始时 \(l=r=\{1,2,\dots,n\}\)。考虑每次操作前 \(p\) 个数,等价于删去 \([l_1,r_1],[l 阅读全文
posted @ 2025-07-02 18:19 徐子洋 阅读(17) 评论(0) 推荐(0)
摘要:题目链接 考虑拆贡献。 显然答案可以拆成对于所有 \(s_i\) 的每一个后缀的反串,作为前缀在所有串中的出现次数的加和。 这个东西字典树维护一下就行了。 不知道是谁考场上写哈希赛后被人对着模数卡掉了 点击查看代码 #include <bits/stdc++.h> #define FL(i, a, 阅读全文
posted @ 2023-12-31 21:28 徐子洋 阅读(55) 评论(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)
摘要:题目链接 考虑将所有的 \(i\) 指向 \(a_i\),将会建出一张基环内向树。 对于一个节点 \(i\),假若最终我们未圈出它,那么我们称我们选择了 \(i\) 的出边;否则是未选择。 不难发现,最终答案合法当且仅当:所有未选择出边的点,它的入边最少有一条被选择了;所有选择了出边的点,它所有的入 阅读全文
posted @ 2023-10-09 18:18 徐子洋 阅读(71) 评论(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)
摘要:题目链接 一个比较显然的思路就是:我们按照右端点从小到大的顺序(右端点相同按左端点从大到小)去考虑每个好的区间。 由于是连通性问题,不难想到用并查集去实时维护连通性。 根据定义,一个好的区间必定对应了一个连通块;我们考虑的是好的区间,所以当前并查集中的每个连通块必定都是一个区间。而在加入某个点前,这 阅读全文
posted @ 2023-09-24 19:22 徐子洋 阅读(16) 评论(0) 推荐(0)
摘要:题目链接 这类题着重于抓住充分条件进行构造。 解决这道题,就得抓住题目中最为特殊的条件:\(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)
摘要:[原题链接](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)
摘要:[题目链接](https://codeforces.com/problemset/problem/765/E "题目链接") ## 题意 给出一颗无根树,你可以钦定一个根,并进行若干次下述操作: * 选择一个点 $v$,以及 $v$ 延伸出去的两条长度相同的路径(两条路径没有重叠的边)。删去其中任意 阅读全文
posted @ 2023-09-01 16:14 徐子洋 阅读(15) 评论(0) 推荐(0)
摘要:[题目链接](https://codeforces.com/problemset/problem/383/E) 拿到这题,看到求答案的方式:“平方的异或和”。这是就能想到可能有两种方式统计答案: * 直接按照他所说的去算。 算出每一种情况下的数量平方再取个异或和。 * 拆贡献 既然是平方,就无异于点 阅读全文
posted @ 2023-08-31 19:50 徐子洋 阅读(17) 评论(0) 推荐(0)
摘要:原题链接 首先我们让 \(c_s\) 表示有多少 \(a_i\) 是 \(s\) 的超集,那么有:取与后是 \(s\) 的超集的集合个数 \(f_s=2^{c_i}\)(这里把空集也认为是 \(s\) 的超集,联系前后文,会发现这样其实不影响计数)。 再让 \(g_s\) 表示有多少集合取与后恰好是 阅读全文
posted @ 2023-08-31 19:46 徐子洋 阅读(19) 评论(0) 推荐(0)
摘要:[题目链接](https://codeforces.com/problemset/problem/1288/D) 看到题目中有很多 $\min,\max$,一眼二分答案。 考虑一个常见的套路:假设我们二分的值是 $mid$,那么我们在判断合法性时把数字矩阵变成 $01$ 矩阵:假若 $a_{i,j} 阅读全文
posted @ 2023-08-31 19:23 徐子洋 阅读(19) 评论(0) 推荐(0)
摘要:[题目链接](http://codeforces.com/problemset/problem/1826/E "题目链接") 题意:给定一个物品序列。每个物品有 $m$ 种属性和一个收益(第 $i$ 个物品的第 $j$ 种属性为 $r_{j,i}$)。你需要从原序列中取出几个物品(可以乱序取),并给 阅读全文
posted @ 2023-08-31 16:02 徐子洋 阅读(17) 评论(0) 推荐(0)
摘要:[题目链接](https://codeforces.com/problemset/problem/1103/C "题目链接") 任取一颗 $\text{DFS}$ 树。 如果最大深度 $\geq\frac{n}{k}$,则找到了一条路径。 对于剩下的情况,我们按环去处理。钦定一个合法环中的“代表点” 阅读全文
posted @ 2023-08-29 14:32 徐子洋 阅读(11) 评论(0) 推荐(0)
摘要:[题目链接](https://codeforces.com/problemset/problem/1746/F) 这个数据范围,显然出题人出这题的本意不是让我们用带修莫队过题(当然有人过),而我们又难以找到很好的 $\text{DS}$ 维护方法。 故考虑另辟蹊径。对于所有 $a_i,x$,不妨把值 阅读全文
posted @ 2023-08-26 12:40 徐子洋 阅读(34) 评论(0) 推荐(0)