Loading

2023牛客寒假算法基础集训营6

2023牛客寒假算法基础集训营6

比赛地址: 2023牛客寒假算法基础集训营6_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

部分题解: A B C D F G H I


A

思路 : 普通签到题, 比较大小

题目 : A_2023牛客寒假算法基础集训营6 (nowcoder.com)

代码 : 代码查看 (nowcoder.com)


B

思路 :

预处理 + 二分查找 + 筛约数

先预处理出来每个 \(a_{i}\)约数, 对于每个约数, 把其所在的所有 \(a_{i}\) 的下标存起来

对于每次操作:

  • 修改: 添加 \(x\) 的同时, 把 \(x\) 的约数也处理存起来
  • 讯问: 二分查找 \(a_{x}\) 作为约数下的下标里, 第一个大于 \(x\) 的位置, 然后取其到最后的个数就行

题目 : B_2023牛客寒假算法基础集训营6 (nowcoder.com)

代码 : 代码查看 (nowcoder.com)


C

思路 :

贪心 + 模拟

为了尽可能让合起来的数最大, 就要尽可能让大的数被加的次数多, 也就是让大数尽可能往序列中间靠

当 n = 5 时,
如果序列为 [1, 4, 3, 2]
则有 [5, 7, 5], 那么 4 就会被利用两次, 那么这时 7 最大
则有 [12, 12], 那么 7 也会被利用两次, 实现利用最大化
如果序列为 [4, 1, 3, 2]
则有 [5, 4, 5], 那么 4 就只会被利用一次

// 所以就需要让大数往中间靠, 以此得到最大值

题目 : C_2023牛客寒假算法基础集训营6 (nowcoder.com)

代码 : 代码查看 (nowcoder.com)


D

思路 :

贪心 + 差分 + 前缀和

在字符串 \(s\) 里, 对于任意的ud, 找到参与构成udu最多一个(不唯一), 并把它改掉

遍历字符串, 当s[i] == 'd'时,

  • l[i]s[i]左边u的个数,r[i]s[i]右边u的个数
    • s[i]参与构造udu的个数d[i] += l[i] * r[i]
    • s[0 ~ i]u参与构造的个数d[j] += r[i]
    • s[i ~ n]u参与构造的个数d[j] += l[i]

因为一个一个加会超时, 所以用差分, 最后加和判断

题目 : D_2023牛客寒假算法基础集训营6 (nowcoder.com)

代码 : 代码查看 (nowcoder.com)


F

思路 :

贪心 + 预处理 + 二进制

对于每次操作, 优先对最大值进行操作

因为数据范围很大, 可以预处理进行第 \(1, 2, 3 ... cnt\) 次操作后数组 \(a\) 的最大值, 直到最大值为 \(1\) 就停止预处理, 并记录一下此时的操作数 \(cnt\).

对于每次询问, 如果 \(k > cnt\) 直接输出 \(1\), 其余情况就输出预处理的值

题目 : F_2023牛客寒假算法基础集训营6 (nowcoder.com)

代码 : 代码查看 (nowcoder.com)


G

思路 :

可以把数分为正数和负数(0 正负都行)

  • \(L\) 为负数个数, \(R\) 为非负数的个数
    • 如果此时 \(L \ge 2, R \ge 2\) , 那就取 \(max(负数最大的两个数相乘, 非负数最大的两个数相乘)\)
    • 如果此时 \(L = 1\)
      • \(R = 0\), 无数可取
      • \(R = 1\) , 直接取相乘
      • \(R \ge 2\) , 取非负数最大的两个数相乘
    • 如果此时 \(R = 1\) (同理)
      • \(L = 0\), 无数可取
      • \(L = 1\) , 直接取相乘
      • \(L\ge 2\), 取负数最大的两个数相乘

题目 : G_2023牛客寒假算法基础集训营6 (nowcoder.com)

代码 : 代码查看 (nowcoder.com)


H

思路 : 普通数学题

题目 : H_2023牛客寒假算法基础集训营6 (nowcoder.com)

代码 : 代码查看 (nowcoder.com)


I

思路 :

最短路 + BFS

可以求出从 \(1 - n\) 最短的路数 \(d\) , 如果 \(d \le m + 1\) , 那么就可以边走边消灭自己走过的路, 答案就为 \(d\); 否则就是 \(d = m\), 那么就得先消耗第一条路的时间, 然后才能边走边消灭自己走过的路

题目 : I_2023牛客寒假算法基础集训营6 (nowcoder.com)

代码 : 代码查看 (nowcoder.com)


posted @ 2023-02-03 20:20  Oneway`  阅读(50)  评论(0编辑  收藏  举报