摘要:
思路 首先我们需要看到题目一个特殊的地方:这个序列中只存在 \(0\) 和 \(1\)。 那么,我们不难发现最终的答案一定是形如下面的序列:\(0,\dots,0,1,\dots,1\)。 知道了这些,就很好想了。我们从后往前枚举,如果当前一位为 \(0\) 了,就从 \(last \sim i\) 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(11)
评论(0)
推荐(0)
摘要:
思路 做这道题之前,首先要知道一个性质:\(a \operatorname{or} b \geq a\)。那么,我们就能得出一个结论:经过一定顺序的排列,最多经过 \(\lceil \log_2^{a_{\max}} \rceil\) 个数就能让前缀或的值达到最大值。 我们不妨令有一个位置 \(i\ 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(35)
评论(0)
推荐(0)
摘要:
2022/11/23:修改了一下代码。 题意 有 \(T\) 组数据,每次给出一个 \(n,q\),表示台阶的数量和询问的次数。 然后再给出一个 \(a_i\) 为台阶高度的差分数组。 每次询问给出一个 \(k\),表示每次能走 \(k\) 个单位的高度。 问:最高能到达的高度。 思路 考虑暴力,我 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(12)
评论(0)
推荐(0)
摘要:
思路 我们可以观察样例,不难发现:对于任意一段长度为 \(2^k\) 的区间中,如果最大值减最小值加 \(1\) 等于此区间的长度,那么一定有解。 因为,我们的目标是使整个序列升序排列。因此,我们在一个区间内的最大值减最小值加 \(1\) 与区间长度是相等的。 所以,我们可以用上述结论为判断无解的标 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(18)
评论(0)
推荐(0)
摘要:
思路 简单构造题,我们可以分为三种情况进行构造。 \(n = 3\) 时,一定无解,输出 -1。(你可以试试) \(n \bmod 2 = 1 \wedge n \neq 3\) 时,我们直接先输出 \(n,n - 1\),然后顺序输出即可。 证明:令 \(a\) 为最后构造出的序列。那么,\(a_ 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(17)
评论(0)
推荐(0)
摘要:
思路 首先证明一下当序列扩大时答案一定不劣。考虑 \(f(l,r)\) 到 \(f(l,r + 1)\) 的变化。 \[\begin{aligned} f(l,r) - f(l,r + 1) &= s_{l,r} - xs_{l,r} - s_{l,r + 1} + xs_{l,r + 1}\\ & 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(9)
评论(0)
推荐(0)
摘要:
思路 首先转化原式为: \[(a_i + a_j) \times (a_i + a_j + 1) \equiv z \pmod 3 \]考虑对 \(a_i \bmod 3,a_j \bmod 3\) 进行分讨: \(a_i/a_j\) \(0\) \(1\) \(2\) \(0\) \(0\) \( 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(9)
评论(0)
推荐(0)
摘要:
思路 经典贪心,二进制拆分后,从高位往低位枚举。 如果答案的第 \(i\) 位为 \(1\),说明 \(\forall p \in [1,n]\),\(c_p\) 的第 \(i\) 位都是 \(1\)。进而由异或的性质得到,\(\forall p \in [1,n]\),\(a_p\) 的第 \(i 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(13)
评论(0)
推荐(0)
摘要:
思路 首先可以将题目的操作转化为: 将一个数 \(a_i\) 异或一个常数 \(k\)。 将连续两个数 \(a_i,a_{i + 1}\) 同时异或一个常数 \(k\)。 那么,你发现最坏情况下,操作次数是 \(n\)。那么考虑如何将多余步骤给减去。 发现,如果一个区间 \([l,r]\),\(\o 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(15)
评论(0)
推荐(0)
摘要:
思路 Part 1 这种题目应该能一眼看出是 DP。 我们令 \(dp_{i,j}\) 表示走到 \(j\) 这个位置,最后一步花了 \(i\) 的倍数。 那么,我们的方程就很好想了:\(dp_{i,j} = \sum_{k = 1}^{j - k \times i \geq 0}dp_{i - 1 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(22)
评论(0)
推荐(0)
摘要:
思路 由于题目中说这是一棵无根树,不太方便思考,于是,我们可以假装把这棵树看做有根树。 首先我们令 \(d_1,d_2,d_3\) 分别表示从根节点到节点 \(1,2,3\) 的长度(不算相交部分)。 那么我们可以得到下式: \[ \left\{\begin{matrix} d_{12} = d_1 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(24)
评论(0)
推荐(0)
摘要:
思路 这是一道极好的思维题,主要考察了:组合数学和正难则反的方法。 这题可以发现如果用直接法将十分的繁琐,于是乎,我们可以用正难则反的方法,即:总的减去不满足的。 这道题总的很好求,为:\(C_{r - l + 1}^{3}\)。 不满足的情况,我们就可以将题目转化为:\(\operatorname 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(25)
评论(0)
推荐(0)
摘要:
思路 因为我们枚举的直径是具备单调性的,所以可以使用二分答案。 我们可以想一个事情,如果有两个点 \(u\) 和 \(v\),它们两点之间的最短路径要么是直接从 \(u \to v\);要么是经过一个中转点 \(t\),即:\(u \to t \to v\)。 然后,我们可以发现一个显然的规律,就是 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(12)
评论(0)
推荐(0)
摘要:
题意 给定 \(n\) 个长度为 \(m\) 的数组,对于每一个数组选择下面任意一种操作进行若干次(操作二只能被一个数组选出)。 \(c_{t,i} - 1,c_{t,i - 1} + 1,c_{t,j} - 1,c_{t,j - 1} + 1\)。 \(c_{t,i} - 1,c_{t,i - 1 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(7)
评论(0)
推荐(0)
摘要:
思路 发现 \(2^k\) 大的数,最终的答案一定由前 \(k + 1\) 小的元素组成。 考虑数学归纳法,显然当 \(k = 1\) 成立。假令 \(k'\) 时成立,证明 \(k = k' + 1\) 时成立即可: 若第 \(k\) 位有两个及以上的 \(0\),显然最终答案的第 \(k\) 位 阅读全文
posted @ 2024-06-24 12:22
WBIKPS
阅读(13)
评论(0)
推荐(0)