10 2025 档案
摘要:hhhqx 的博客 一些指令 🛠️ 编译运行代码 编译代码:g++ temp.cpp -o temp。生成类似 .exe 的东西(没有后缀名)。 运行:./temp。或者是 time ./temp,会输出三个时间:\(\text{real, user, sys}\),评测机判题看的是 \(\tex
阅读全文
摘要:钥匙 洛谷 P8339 钦定当有很多把钥匙能打开开宝箱时使用最后拿到的一把(应该要想想用第一把打开,实际不好做。) 每种颜色 \(col\) 的钥匙和宝箱是互相独立的,可以对每种颜色建出虚树。对于一把钥匙 \(u\),以它为根进行搜索,记录一个值 \(c\)。碰到颜色为 \(col\) 的钥匙 c+
阅读全文
摘要:正睿二十连测 B 给定 \(n \times n\) 的矩阵 \(A\) ,长度为 \(m\) 的数组 \(b\) 以及 \(X, Y\),问有多少个长度为 \(n\) 的数组 \(a\) 满足 \(A_{i, j} = a_i \oplus a_j \oplus X\) 或 \(a_i \oplu
阅读全文
摘要:正睿二十连测 B 赛后:\(30min\) 有一个大小为 \(2 \times n\) 的网格,\((i, j)\) 的颜色为 \(a_{i, j}\),一次操作可以将 \((1, 1)\) 所在的极大四连通同色连通块染为任意一种颜色 \(c\)。问至少需要多少次操作才能使整个网格变为同一种颜色?
阅读全文
摘要:正睿二十连测 B 时间:\(40min\)。 用个并查集之类的东西维护一下边即可。可惜因为 map 常数巨大 TLE 了 \(8pts\)。 变成 unordered_map 或者加快读都能轻松通过。 C 方向搞错了,瞄了眼题解 \(35min\) 就做出来了。 给定 \(n\) 个点 \(m\)
阅读全文
摘要:D 有一个 \(h \times w\) 的网格图,有 \(n\) 个点 \((a_i, b_i)\) 以及 \(n - 1\) 条边,每条边形如 \(op \ x \ y\),表示位于 \((x, y)\) 的点与位于 \((x, y + 1) / (x + 1, y)\) 的点之间有连边(给的位
阅读全文
摘要:T1 首先可以花 \(O(n(n + m))\) 的时间求出任意两个点是否可以通过至多转车 \(k\) 次到达。若 \(f_{u, v} = 1\) 表示可以,否则不可以。 先暂时忽略景点不能相同的限制。因为有 \(4\) 个景点,不能 \(O(n^4)\) 全部枚举,我们尝试枚举其中的两个:\(\
阅读全文
摘要:有一棵以 \(1\) 为根, \(n\) 个节点的树,每个节点有一个颜色白/黑。给定 \(q\) 组询问,每组询问给了一个 \(u\),表示将 \(u\) 子树内的点的颜色全部翻转。每次操作后回答至少需要几条从根开始的链才能覆盖所有黑点覆盖。 先来转化一下问题,题目问的其实就是有多少个节点 \(u\
阅读全文
摘要:给定 \(n\) 个数 \(a_1 \sim a_n\),这 \(n\) 个数围成一圈,\(a_i\) 与 \(a_{i - 1}, a_{i + 1}\) 相邻(\(a_1, a_n\) 相邻)。每次操作可以将某个数 \(+1/-1\),问至少经过几次操作能使每个数至少和它相邻的一个数相同? \(
阅读全文
摘要:给定一棵大小为 \(n\) 的树,需要构造不超过 \(3n\) 条指令(有以下两种,且不能有连续两次 \(2\) 操作),使得一个在 \(1\) 的棋子一定能走到 \(n\)。 \(1\),表示棋子会移动到一个和它相邻的节点,没有则不移动。 \(2 \ u\),表示摧毁节点 \(u\) 及其邻边,需
阅读全文
摘要:B 时间:看了题解后花了 \(30\) 多分钟吧。 给定 \(n\) 对数 \((a_i, b_i)\) 以及 \(T\) 组询问,每组询问给定 \((x, y)\),问有多少对给定的数能通过对 \((x, y)\) 进行若干次以下两种操作得到? \((x, y) \leftarrow (x, x
阅读全文
摘要:T3 Task 1 ~ 6: k = 1 这个部分就是只有一条关键边。 根据题目的性质,一个点 \(u\) 连的所有边肯定会形成一条链(推推样例吧)。而第一条访问到 \(u\) 的边一定是链头,剩下还有 \(deg_u - 1\) 条,共有 \((deg_u - 1)!\) 种排列方式。所以答案为
阅读全文
摘要:T4 CSP-S 2023 种树 显然答案有单调性,考虑二分答案 \(t\)。 二分有什么好处呢?就是可以知道每棵树最坏在哪天种才能达到 \(a_i\) 的高度。(不二分是做不到的,因为 \(x\) 是从 \(1\) 开始计数的。) 而这个部分显然又可以通过二分解决,比如说二分了一个 \(l\),只
阅读全文
摘要:参考了这篇 题解。图片是题解里的。 T3 NOIP2023 双序列拓展 首先,对于任意的 \(1 \le i, j \le l_0, (f_i - g_i)(f_j - g_j) > 0\),其实就是要么所有 \(f_i < g_i\),要么 \(f_i > g_i\),可以根据 \(x_1, y_
阅读全文
摘要:正睿 NOIP 二十连测。 B 有 \(n\) 个数 \(a_1 \sim a_n\),可以进行若干次以下操作,问对于 \(k = 1, 2, 3 \dots n\),至少需要几次操作才能删去 \(k\) 个数。 选择若干相同的数删去。 选择若干个互不相同的数删去。 不难发现答案一定是一个递增的序列
阅读全文
摘要:2025 正睿二十连测 https://zhengruioi.com/contest/2000 B 标签 DP 给定一个长度为 \(n\) 的序列 \(a\),求它最长的子序列 \(b\) 使得 \(b\) 里没有距离 \(\le 2\) 的相同值(\(b_i \ne b_{i - 1}, b_i
阅读全文
摘要:正睿NOIP 二十连测 https://zhengruioi.com/contest/1999 A 标签 枚举 有 $m(m \le 95)$ 种药剂,每种药剂有 $n_i(\sum n_i \le 10^{15})$ 瓶,等级为 $p_i$($2 \le p_i \le 499$)。要将这些药剂分
阅读全文
摘要:正睿 NOIP 十连测 B 有 \(n\) 个数 \(a_1 \sim a_n\)。初始有一个 \(x = 1\),每次需要将 \(x\) 变为某个 \(i\),花费代价为 \(\min(|i - x|, n - |i - x|)\),且 \(a_x \le a_i\)。问访问所有 \(i\) 需花
阅读全文
摘要:正睿 CSP 7 连测 终于 ak 了一场。 D 给定长度为 \(n(n \le 2 \times 10^5)\) 的序列 \(a(|a_i| \le 10^9)\)。若 \(a_i < 0\),\(b_i = -2^{-a_i}\);否则,\(b_i = 2^{a_i}\)。求 \(b\) 的最大
阅读全文
摘要:给定长度为 \(n(1 \le n \le 2^{20})\) 的字符串 \(s\),问有多少种合法的拆分方式?一种合法的拆分方式: \(s = (AB)^iC(i > 0)\)其中 \(A,B,C\) 为非空字符串,\((AB)^i\) 为 \(i\) 个 \(AB\) 拼接的结果。 \(F(A)
阅读全文
摘要:给定整数 \(n, m, k(k \le n \le 30, m \le 100)\),和一个长度为 \(m + 1\) 的正整数数组 \(v_0, v_1, \ldots, v_m\)。对于一个长度为 \(n\),每个元素均不超过 \(m\) 的非负整数序列 \(\{a_i\}\),我们定义它的权
阅读全文
摘要:有长度为 \(m\) 的序列 \(a\)(初始全为 \(0\))以及 \(n\) 次操作,每次操作形如 \(l, r, v\),表示将 \(a_{l} \sim a_r\) 变为 \(v\)。现在给定 \(q\) 组询问,每组询问给定 \(l, r\),输出若依次执行第 \(l \sim r\) 次
阅读全文
摘要:给定序列 \(a_1,\dots,a_n(n \le 5 \times 10^5, 3s)\) ,\(m\) 次询问,每次询问给出 \(l,r\) ,问有多少组 \((i,j,k)\) 满足 \(l\le i<j<k\le r,\;a_i=a_k>a_j\) 。 这个题看起来如果离线下来按 \(r\
阅读全文
摘要:给定长度为 \(n\) 的序列 \(a\) 和 \(q\) 次操作。每次操作为对 \(a\) 进行一次冒泡排序(\(a_i > a_{i + 1}\) 时交换)或者查询 \(a_l \sim a_r\) 之和。 对于一次冒泡排序,显然会把最大值挪到最后面。所以,当 \(a_1 \sim a_i\)
阅读全文
摘要:给定 \(n(1 \le n\le 20), m(1 \le m \le 10^6)\) 和一些 \(p_i\)。有 \(n\) 堆石子,每堆石子有 \(1 \sim m\) 个。两个人进行博弈,每次每个人可以取走第 \(p_i\) 堆石子(\(i\) 任选),然后剩下的石堆重新编号,直至只有一堆石
阅读全文
摘要:正睿二十连测 https://zhengruioi.com/contest/1997 C 最后的 DP 比较神奇,花了至少 \(1h\) 才搞懂。 给定 \(n, k\),问有多少长度为 \(n\) 的排序能在至多 \(k\) 次 “双向冒泡排序” 后变得有序。 一个经典的套路:对于每个 \(x\)
阅读全文
摘要:正睿 2025 20 连测 赛时花了多久忘了。 2025.10.29 第二次写。 C 赛后看题解 \(15min\),写 \(45min\)。 给定 \(N\) 个字符串和 \(k\),\(s, t\) 相似当且仅当 \(LCP(s, t) + LCS(s, t) + k \ge \max(|s|,
阅读全文
摘要:正睿二十连测 2025.11.19 第二遍 https://zhengruioi.com/contest/1996 A 标签 位运算 定义 \(f(x)\) 是一个关于 \(x\) 的表达式,运算符有 \(+,-,*, \&, |, \oplus\), ~。(例如 \(f(x) = (x + 1)
阅读全文
摘要:给定长度为 \(n(n \le 2000)\) 的序列 \(a\),询问有多少个子序列满足不存在长度 \(\ge 3\) 的下降子序列。 显然可以 DP,令 \(dp_{i, j, k}\) 表示前 \(i\) 个数组成的子序列,最大值为 \(j\),长度为 \(2\) 的下降子序列第二个元素最大的
阅读全文
摘要:给定大小为 \(n\) 的数组 \(a\) 及 \(q\) 组询问,每次给定 \([l,r]\),请输出 \(a_l \sim a_r\) 中出现次数 \(\ge c = \lfloor \frac{r - l + 1}{3} \rfloor + 1\) 的那些值。 这应该算个套路题,其实将 \(3
阅读全文
摘要:正睿二十连测 2025.10.29 写第二遍。 https://zhengruioi.com/contest/1995 B 赛场上花了 \(40min\) 写了个暴力。赛后看题解 \(20min\) + 写 \(30min\)。 第二遍花了 \(25min\)。 有多少个长度为 \(n\) 排列,使
阅读全文
摘要:对于数组 \(a\),定义 \(w(a)\) 为 \(a\) 中满足 \(a_i > mex(a)\) 的下标数。现在给定长度为 \(n\) 的数组,对于每个 \(r\), 求出 \(\max\limits_{l = 1}^{r} w(a[l \sim r])\)。 考虑枚举 \(x = mex(a
阅读全文
摘要:给定 \(n\) 个数和 \(q\) 次查询,每次查询给定 \(k\),问最多进行 \(k\) 次以下操作后 \(n\) 个数按位或的 popcount 最大值。 操作是将某个 \(a_i++\)。 令 \(ans_i\) 表示使得 \(popcount \ge i\) 至少需要几次操作,显然 \(
阅读全文
摘要:给定两个 \(n\) 次多项式 \(A, B\),要求出 \(C = A \times B\)。本文将讲述一个能在 \(O(n \log n)\) 的时间内快速计算的方法:FFT,比 \(O(n^2)\) 的朴素算法更加高效。并且因为两个整数的乘法可以被认为是多项式乘法,这个算法也可以优化高精度运算
阅读全文
浙公网安备 33010602011771号