Welcome to Liukejie's b|

liukejie

园龄:1年8个月粉丝:5关注:11

NOIP20240802 也是 CF1997

NOIP20240802

T1 Strong Password

  • 题意:在一个由小写字母组成的字符串 s 的任意位置插入一个小写字母(包括最前面和最后面),使得新字符串的权值最大化,并输出其中一个符合条件的新字符串。

权值的计算规则如下:

  • 如果某个字符与前一个字符不同,或者它是第一个字符,则它的贡献值为 2 点。

  • 如果某个字符与前一个字符相同,则它的贡献值为 1 点。

  • 题解:自己模拟。

  • 代码

T2 Make Three Regions

  • 题意:t 组数据,每组数据给一个 2×n 的矩阵,每个格点是 .x 的一种,保证所有的 . 构成一个联通块。

问有多少个格点满足:如果该格点为 . 且将该格点改为 x,则矩阵被分成三个联通块。

  • 题解:如果满足
... 或 x.x
x.x    ...

的情况,则可以统计答案。

T3 Even Positions

  • 题意:自己看
  • 题解:若遇到 (,加 3,若遇到 ),加 1,我无法证明。
  • 代码

T4 Even Positions

  • 题意:给出一棵根为 1 的有根点带权树,你可以进行任意次操作,每次将 av+1,且使 v 的子树上的点 au1,每次操作后权值不能为负,问根节点的最大权值。
  • 题解:树上贪心。分三种情况:
    • 叶子节点:无需操作。
    • 根节点:求得其儿子的最小值,直接与根节点相加即可。
    • 普通节点:求得其儿子的最小值,由于是要将子树中的每一个节点的值减少,所以对于该节点的上一层,我们只能取该节点及其儿子的最小值作为贡献,所以我们对该节点及其儿子的最小值平均地分配权值。
  • 代码

T5 level Up

  • 题意:打潘奕帆操作是指顺次对于 [1,n] 的每个潘奕帆,每个潘奕帆有 ai 的等级,如果你的等级 lv 严格大于潘奕帆的等级 ai,它就会逃跑。反之你会和它战斗。你每与 k 个潘奕帆战斗就会升一级,即 lvlv+1。现在有若干组查询,每次查询 i,x 表示询问 k=x 时,你是否会和第 i 个潘奕帆战斗。
  • 题解:二分加树状数组加优化。
  • 代码

T6 Chips on a Line 不会

  • 题意:有 n 个筹码,需要将它们放置在从 1x 的点上,可以进行四种操作来减少筹码的数量,目标是找到一种放置方式,使得通过一系列操作后,筹码的数量最少。需要计算出所有满足特定成本 m 的放置方式的数量。
posted @   liukejie  阅读(10)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起