随笔分类 -  题解

摘要:题意 给定一个字符串 S,你可以进行 k 次操作,每次操作你可以选定一个 i,并将 Si 的大小写转换。 求:操作后,最多有几组配对的字符。(配对的定义是:对于一个字符,如果有大写,有小写被称之为一组。例如:A 和 a 为一组。) 思路 你在读入的时候,你预处理一个 阅读全文
posted @ 2024-06-25 12:27 WBIKPS 阅读(9) 评论(0) 推荐(0) 编辑
摘要:题意 给定一个长度为 n 序列 a,现有 q 次操作,对于每一次操作有: 1 l r:表示将 ai(lir) 改为 ai 的数位之和。 2 x:输出 ax。 思路 可以用一个类似于线段树懒标记的思想,如果不用输出就不修改。 阅读全文
posted @ 2024-06-25 12:27 WBIKPS 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题意 给定一个长度为 n 的序列 a,你可以选定一个数 i(1i<n),使得 ai=aiai+1=ai+1。 问:进行若干次操作后,算出 max(i=1nai)。 思路 阅读全文
posted @ 2024-06-25 12:27 WBIKPS 阅读(14) 评论(0) 推荐(0) 编辑
摘要:题意 定义函数 f(x) 表示字符串 x 中不同字符的数量。 现给定一个字符串 S,将它分割为两个字符串 a,b。求出:max(f(a)+f(b))。 思路 我们可 阅读全文
posted @ 2024-06-25 12:27 WBIKPS 阅读(19) 评论(0) 推荐(0) 编辑
摘要:思路 正难则反,假设每一个棋子都要走过每一个点,所需的步数显然是 4(n1)。然后考虑对于每一个棋子那些点是必走的。 如果 x 子树内有这个棋子需要到达的点,则 x 必走。 对于另一个棋子在 x 子树内必走过的深度最深的点的深度记作 md,如果 \(md 阅读全文
posted @ 2024-06-25 12:27 WBIKPS 阅读(5) 评论(0) 推荐(0) 编辑
摘要:思路 首先记所有 1 的数量为 num,那么显然有当 nmodnum0 时无解。那么考虑有解的时候该怎么办。 显然对于每一个 ai 序列中,最终 1 的数量为 numn,记作 t;并记 cnti 阅读全文
posted @ 2024-06-25 12:26 WBIKPS 阅读(7) 评论(0) 推荐(0) 编辑
摘要:UPD 23/10/3 更新的对思路的描述,以及代码。 思路 对于每一个 ai=0,如果我们将它变为 x,都可以直接将 in 位置上的前缀和加 x。 设 ajai 后第一个 0,那么,在 j 时同样有上述规律 阅读全文
posted @ 2024-06-25 12:26 WBIKPS 阅读(5) 评论(0) 推荐(0) 编辑
摘要:思路 首先我们需要看到题目一个特殊的地方:这个序列中只存在 01。 那么,我们不难发现最终的答案一定是形如下面的序列:0,,0,1,,1。 知道了这些,就很好想了。我们从后往前枚举,如果当前一位为 0 了,就从 lasti 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(4) 评论(0) 推荐(0) 编辑
摘要:思路 做这道题之前,首先要知道一个性质:aorba。那么,我们就能得出一个结论:经过一定顺序的排列,最多经过 log2amax 个数就能让前缀或的值达到最大值。 我们不妨令有一个位置 \(i\ 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(21) 评论(0) 推荐(0) 编辑
摘要:2022/11/23:修改了一下代码。 题意 有 T 组数据,每次给出一个 n,q,表示台阶的数量和询问的次数。 然后再给出一个 ai 为台阶高度的差分数组。 每次询问给出一个 k,表示每次能走 k 个单位的高度。 问:最高能到达的高度。 思路 考虑暴力,我 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(7) 评论(0) 推荐(0) 编辑
摘要:思路 我们可以观察样例,不难发现:对于任意一段长度为 2k 的区间中,如果最大值减最小值加 1 等于此区间的长度,那么一定有解。 因为,我们的目标是使整个序列升序排列。因此,我们在一个区间内的最大值减最小值加 1 与区间长度是相等的。 所以,我们可以用上述结论为判断无解的标 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(10) 评论(0) 推荐(0) 编辑
摘要:思路 简单构造题,我们可以分为三种情况进行构造。 n=3 时,一定无解,输出 -1。(你可以试试) nmod2=1n3 时,我们直接先输出 n,n1,然后顺序输出即可。 证明:令 a 为最后构造出的序列。那么,\(a_ 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(11) 评论(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 阅读(4) 评论(0) 推荐(0) 编辑
摘要:思路 首先转化原式为: (ai+aj)×(ai+aj+1)z(mod3)考虑对 aimod3,ajmod3 进行分讨: ai/aj 0 1 2 0 0 \( 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(5) 评论(0) 推荐(0) 编辑
摘要:思路 经典贪心,二进制拆分后,从高位往低位枚举。 如果答案的第 i 位为 1,说明 p[1,n]cp 的第 i 位都是 1。进而由异或的性质得到,p[1,n]ap 的第 \(i 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(3) 评论(0) 推荐(0) 编辑
摘要:思路 首先可以将题目的操作转化为: 将一个数 ai 异或一个常数 k。 将连续两个数 ai,ai+1 同时异或一个常数 k。 那么,你发现最坏情况下,操作次数是 n。那么考虑如何将多余步骤给减去。 发现,如果一个区间 [l,r],\(\o 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(11) 评论(0) 推荐(0) 编辑
摘要:思路 Part 1 这种题目应该能一眼看出是 DP。 我们令 dpi,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 阅读(13) 评论(0) 推荐(0) 编辑
摘要:思路 由于题目中说这是一棵无根树,不太方便思考,于是,我们可以假装把这棵树看做有根树。 首先我们令 d1,d2,d3 分别表示从根节点到节点 1,2,3 的长度(不算相交部分)。 那么我们可以得到下式: \[ \left\{\begin{matrix} d_{12} = d_1 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(5) 评论(0) 推荐(0) 编辑
摘要:思路 这是一道极好的思维题,主要考察了:组合数学和正难则反的方法。 这题可以发现如果用直接法将十分的繁琐,于是乎,我们可以用正难则反的方法,即:总的减去不满足的。 这道题总的很好求,为:Crl+13。 不满足的情况,我们就可以将题目转化为:\(\operatorname 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(8) 评论(0) 推荐(0) 编辑
摘要:思路 因为我们枚举的直径是具备单调性的,所以可以使用二分答案。 我们可以想一个事情,如果有两个点 uv,它们两点之间的最短路径要么是直接从 uv;要么是经过一个中转点 t,即:utv。 然后,我们可以发现一个显然的规律,就是 阅读全文
posted @ 2024-06-24 12:22 WBIKPS 阅读(8) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示