NOIP20240802 也是 CF1997
NOIP20240802
T1 Strong Password
- 题意:在一个由小写字母组成的字符串
的任意位置插入一个小写字母(包括最前面和最后面),使得新字符串的权值最大化,并输出其中一个符合条件的新字符串。
权值的计算规则如下:
-
如果某个字符与前一个字符不同,或者它是第一个字符,则它的贡献值为
点。 -
如果某个字符与前一个字符相同,则它的贡献值为
点。 -
题解:自己模拟。
T2 Make Three Regions
- 题意:
组数据,每组数据给一个 的矩阵,每个格点是.
或x
的一种,保证所有的.
构成一个联通块。
问有多少个格点满足:如果该格点为 .
且将该格点改为 x
,则矩阵被分成三个联通块。
- 题解:如果满足
... 或 x.x
x.x ...
的情况,则可以统计答案。
T3 Even Positions
- 题意:自己看
- 题解:若遇到
(
,加 ,若遇到)
,加 ,我无法证明。 - 代码
T4 Even Positions
- 题意:给出一棵根为
的有根点带权树,你可以进行任意次操作,每次将 ,且使 的子树上的点 ,每次操作后权值不能为负,问根节点的最大权值。 - 题解:树上贪心。分三种情况:
- 叶子节点:无需操作。
- 根节点:求得其儿子的最小值,直接与根节点相加即可。
- 普通节点:求得其儿子的最小值,由于是要将子树中的每一个节点的值减少,所以对于该节点的上一层,我们只能取该节点及其儿子的最小值作为贡献,所以我们对该节点及其儿子的最小值平均地分配权值。
- 代码
T5 level Up
- 题意:打潘奕帆操作是指顺次对于
的每个潘奕帆,每个潘奕帆有 的等级,如果你的等级 严格大于潘奕帆的等级 ,它就会逃跑。反之你会和它战斗。你每与 个潘奕帆战斗就会升一级,即 。现在有若干组查询,每次查询 表示询问 时,你是否会和第 个潘奕帆战斗。 - 题解:二分加树状数组加优化。
- 代码
T6 Chips on a Line 不会
- 题意:有
个筹码,需要将它们放置在从 到 的点上,可以进行四种操作来减少筹码的数量,目标是找到一种放置方式,使得通过一系列操作后,筹码的数量最少。需要计算出所有满足特定成本 的放置方式的数量。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步