摘要:
思路 因为石头的数量太多的不好维护,于是我们转化参照物,直接看作人在动。 那么,人向下走相当于向下走两步,向上走相当于不走,向右走相当于向右下走。 然后直接暴力 BFS 一下,算出走到最后一列的时间,然后将终点按照时间找到转化参照物后的位置,取最小值即可。 Code #include <bits/s 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(26)
评论(0)
推荐(0)
摘要:
非常(断句)好暴力。。。 题意 有一个 \(7 \times 7\) 个网格,每一个格子上都有两种颜色,一种是 B,一种是 W。 现在你可以让一个格子上的颜色经行反转(即 B 变为 W 或 W 变为 B),使得网格上没有一个 X 形的图形的颜色都是 B。 思路 首先通过瞪眼法可以发现答案最多为 \( 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(31)
评论(0)
推荐(0)
摘要:
思路 首先有一个显然结论:如果我们将所有叶子节点全部遍历过了,那么整棵树都将被遍历。 于是我们只需要考虑叶子节点之间的关系。再其次,我们发现同一棵子树内的叶子节点一定是被连续遍历的。 考虑将 \(k\) 赋值为 \(k + 1\),那么最终我们是需要直接返回根节点的。 显然,当我们访问完一棵子树后, 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(30)
评论(0)
推荐(0)
摘要:
思路 首先,你显然可以用 \(3n\) 次操作求出 \(a_1\) 和 \(x\)。同时整个序列可以按照值分为小于 \(a_1\) 和大于 \(a_1\) 两部分。 考虑分别处理这两个部分。你希望还可以通过分治的方法,将一个部分再分为一个部分。 但是,由于数据的不随机性,我们不能单纯的选取一个部分的 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(22)
评论(0)
推荐(0)
摘要:
拜谢 ssxvngn。 思路 对于 \(\gcd(a_i,a_j)\) 的贡献次数为:\(\sum_{k = j + 1}^{n}[a_k \geq \max(a_i,a_j)]\)。 因为原式本质是取序列中任意三个元素 \(a,b,c\) 做 \(f\) 函数,因此与数组是否有序无关,考虑先排序。 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(28)
评论(0)
推荐(0)
摘要:
思路 比较典的一个题。 把一棵树的 DFS 序剖下来过后再同一棵子树内的节点编号是连续的。 那么,我们查询 \((l,r,x)\) 时,问题就可以转化为在 \(p_{l \sim r}\) 中是否出现过 \(lid_x \sim rid_x\) 中的数,其中 \(lid_i\) 表示 \(i\) 所 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(16)
评论(0)
推荐(0)
摘要:
思路 比较诈骗的一个题。 首先如果我们先让这棵树形成一条链,那么,这棵树中有效的路径只有从 \(1\) 到 \(n\) 的路径,且长度为 \(n - 1\)。 发现如果每次将 \(n\) 号点移动,非常方便,如果要构造长度为 \(x\),只需将 \(n\) 连向与 \(1\) 距离为 \(x - 1 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(20)
评论(0)
推荐(0)
摘要:
思路 暴力化简公式题。 假定 \(b_{i}^{b_j} = b_{j}^{b_{i}}\) 成立,那么有: \[ 2^{a_i \times 2^{a_j}} = 2^{a_j \times 2^{a_i}}\\ a_i \times 2^{a_j} = a_j \times 2^{a_i}\\ 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(13)
评论(0)
推荐(0)
摘要:
思路 令 \(s_{l,r}\) 表示 \(\sum_{i = l}^{r}{a_i}\),那么考虑如下的情况: \(a_l = 2\),则有 \(s_{l + 1,r} = s_{l,r} - 2\)。 \(a_r = 2\),则有 \(s_{l,r - 1} = s_{l,r} - 2\)。 \ 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(31)
评论(0)
推荐(0)
摘要:
思路 首先可以转化一下题意,发现对于一个好的数对 \((i,j)\) 成立,一定满足无法在 \(a\) 中找到一个 \(a_k\) 为 \(\gcd(i,j)\) 的因子。 不妨设 \(dp_i\) 表示满足 \(\gcd(a_p,a_q) = i\) 的数对数量,\(num_i\) 表示 \(i\ 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(17)
评论(0)
推荐(0)
摘要:
思路 假设最后最大值的位置为 \(x\),最小值的位置为 \(y\)。 那么将所有满足 \(l_i \leq y \leq r_i\) 的线段选出来一定不优。 因为如果 \(x < l_i \vee x > r_i\) 会使答案减 \(1\);如果 \(l_i \leq x \leq r_i\) 会 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(25)
评论(0)
推荐(0)
摘要:
思路 首先对于一个二进制数,如果它能被 \(2^i\) 整除,一定满足在此数中所有的 \(1\) 都在 \(i\) 或 \(i\) 的左边。 那么对于所有在 \(i\) 右边的 \(1\),都应该到 \(i\) 的左边。考虑用 vector 维护所有在 \(i\) 左边的 \(0\) 的位置。 显然 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(18)
评论(0)
推荐(0)
摘要:
思路 发现如果一个字符串中有长度大于等于 \(2\) 回文子串,必定有长度为 \(2\) 的回文子串或长度为 \(3\) 的回文子串,并且形如:aa 和 aba。 所以考虑用线段树这两种情况。维护一段区间的最左、次左、最右、次右的元素,同时用两个标记变量 \(f_1,f_2\) 分别表示这个区间中是 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(40)
评论(0)
推荐(0)
摘要:
CF 是没题考了吧,每场都出二进制拆位。 思路 首先我们可以二分 \(r\),因为 \(r\) 越大,按位与一定只会小于等于 \(r\) 小的情况。 那么,我们可以用 \(num_{i,j}\) 记录 \(a_j\) 第 \(i\) 位的二进制情况。 如果我们对 \(num_{i,j}\) 做一个前 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(29)
评论(0)
推荐(0)
摘要:
思路 观察到 \(a_i,b_i \leq n\),又要求 \(a_i \times a_j = b_i + b_j\) 的数量,那么显然有 \(a_i \times a_j = b_i + b_j \leq 2n\)。 并且显然有 \(a_i\) 和 \(a_j\) 其中一个一定小于 \(\sqr 阅读全文
posted @ 2024-06-25 12:29
WBIKPS
阅读(25)
评论(0)
推荐(0)
摘要:
思路 因为 \(k \leq 3\) 考虑分类讨论。 \(k = 1\):显然答案是 \(1\),因为只有有人的那个点是好点。 \(k = 2\):根据绝对值的几何意义,发现在选定的两个点之间的所有节点都是好点,那么问题转化为了求树上所有路径的节点数量和。众所周知,一条路径上的节点数量等于边的数量加 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(18)
评论(0)
推荐(0)
摘要:
思路 首先,我们需要确定每一种方案的第一个人,那么,可以分为三种情况(其中 \(a\) 为 \(x_i = -1\) 的数量,\(b\) 为 \(x_i = -2\) 的数量,\(len\) 为原序列 \(x\) 中权值大于 \(0\) 的序列排序并离散化的数量): 选择 \(x_i = -1\) 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(9)
评论(0)
推荐(0)
摘要:
思路 发现对于无解的情况,当且仅当同一种字符出现次数大于 \(\frac{n}{2}\) 或者 \(n\) 为奇数。 然后统计每一种有字符的冲突对数,记 \(vis_i\) 表示字符 \(i\) 的冲突对数,并记 \(num = \max \{vis_i\}\),\(cnt = \sum vis_i 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(46)
评论(0)
推荐(0)
摘要:
思路 首先发现对于每一次切割,长和宽只会变化一次。 所以,答案最多只会有两种情况(其中 \(S\) 为矩形的面积): \((\max\{a_i\},\frac{S}{\max\{a_i\}})\),其中需要满足 \(S \bmod \max\{a_i\} = 0\)。 \((\frac{S}{\ma 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(19)
评论(0)
推荐(0)
摘要:
因为我是彩笔,所以我不会组合数,只会暴力。 思路 由 Easy Version 得到的状态转移方程: \[ dp_{i,j} = \left\{\begin{matrix} \sum_{p = 1}^{p < i}{dp_{p,j - 1}} & (j \bmod k = 1)\\ \sum_{p 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(22)
评论(0)
推荐(0)
摘要:
思路 观察一下,发现对于一个拥有 \(n\) 个节点的 \(k\) -flowers,\(k\) 一定为 \(\sqrt n\)。 因为考虑只观察图中标红区域,对于一个 \(k\) -flowers,一定会有 \(k\) 个,并且它们的大小均为 \(k\),而总节点数为 \(n\),因此 \(k = 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(28)
评论(0)
推荐(0)
摘要:
思路 假设原题目中的 \(n\) 在本文中为 \(num\),则原长方形的长 \(m = f_{num + 1}\) 和宽 \(n = f_{num}\)。 显然对于最初始的长方形,显然是要将一个 \(f_{num} \times f_{num}\) 的长方形丢进去的,并且要么放最左边,要么放在最右 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(27)
评论(0)
推荐(0)
摘要:
题意 给定一个有 \(n\) 张牌的牌堆,其中有两种牌: 英雄牌:权值为 \(0\)。 奖励牌:权值不为 \(0\)。 你要从牌堆顺序取牌(从左至右)。 当你取到奖励牌时,你有两种选择:放入新的牌堆的顶部;弃置这张牌。 当你取到英雄牌时,从新的牌堆顶取出一张牌,将其权值加入答案,并弃置。 求:答案的 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(19)
评论(0)
推荐(0)
摘要:
题意 给定一个字符串 \(S\),你可以进行 \(k\) 次操作,每次操作你可以选定一个 \(i\),并将 \(S_i\) 的大小写转换。 求:操作后,最多有几组配对的字符。(配对的定义是:对于一个字符,如果有大写,有小写被称之为一组。例如:A 和 a 为一组。) 思路 你在读入的时候,你预处理一个 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(27)
评论(0)
推荐(0)
摘要:
题意 给定一个长度为 \(n\) 序列 \(a\),现有 \(q\) 次操作,对于每一次操作有: 1 l r:表示将 \(a_i(l \leq i \leq r)\) 改为 \(a_i\) 的数位之和。 2 x:输出 \(a_x\)。 思路 可以用一个类似于线段树懒标记的思想,如果不用输出就不修改。 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(33)
评论(0)
推荐(0)
摘要:
题意 给定一个长度为 \(n\) 的序列 \(a\),你可以选定一个数 \(i(1 \leq i < n)\),使得 \(a_i = -a_i\),\(a_{i + 1} = -a_{i + 1}\)。 问:进行若干次操作后,算出 \(\max(\sum_{i = 1}^{n}a_i)\)。 思路 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(35)
评论(0)
推荐(0)
摘要:
题意 定义函数 \(\operatorname{f}(x)\) 表示字符串 \(x\) 中不同字符的数量。 现给定一个字符串 \(S\),将它分割为两个字符串 \(a,b\)。求出:\(\max(\operatorname{f}(a) + \operatorname{f}(b))\)。 思路 我们可 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(31)
评论(0)
推荐(0)
摘要:
思路 正难则反,假设每一个棋子都要走过每一个点,所需的步数显然是 \(4(n - 1)\)。然后考虑对于每一个棋子那些点是必走的。 如果 \(x\) 子树内有这个棋子需要到达的点,则 \(x\) 必走。 对于另一个棋子在 \(x\) 子树内必走过的深度最深的点的深度记作 \(md\),如果 \(md 阅读全文
posted @ 2024-06-25 12:27
WBIKPS
阅读(21)
评论(0)
推荐(0)
摘要:
思路 首先记所有 \(1\) 的数量为 \(num\),那么显然有当 \(n \bmod num \neq 0\) 时无解。那么考虑有解的时候该怎么办。 显然对于每一个 \(a_i\) 序列中,最终 \(1\) 的数量为 \(\frac{num}{n}\),记作 \(t\);并记 \(cnt_i\) 阅读全文
posted @ 2024-06-25 12:26
WBIKPS
阅读(30)
评论(0)
推荐(0)
摘要:
UPD 23/10/3 更新的对思路的描述,以及代码。 思路 对于每一个 \(a_i = 0\),如果我们将它变为 \(x\),都可以直接将 \(i \sim n\) 位置上的前缀和加 \(x\)。 设 \(a_j\) 是 \(a_i\) 后第一个 \(0\),那么,在 \(j\) 时同样有上述规律 阅读全文
posted @ 2024-06-25 12:26
WBIKPS
阅读(19)
评论(0)
推荐(0)

浙公网安备 33010602011771号