NOIP20240808

NOIP20240809

T1 冲浪

  • 题意:给你一个序列 \(a_1,a_2,a_3\dots a_n\),你可以向左或右移动位置,或删除当前位置左或右所有的数字。当前位置为 \(a_{pos}\),询问至少几次操作,使得序列只剩下 \(a_l\dots a_r\)
  • 题解:多种情况讨论,请讨论完整。
  • 代码

T2 三角

  • 题意:
    给定一个包含 \(n\) 个整数的序列 \(a\),想知道有多少个长度为 \(3\) 的子序列 \((a_x, a_y, a_z)\) 满足:
  • \(x < y < z\)
  • \(a_x \times k = a_y\)
  • \(a_y \times k = a_z\)

其中 \(k\) 是某个固定的常数。

求出满足上述条件的所有可能的三元子序列的数量。

  • 题解:开个 map DP,枚举中间的数,左右乘即可。
  • 代码

T3 序列

  • 题意:让你构造一个每个数为 \(1 \sim n\) 的正整数无限长的序列,满足:
  • \(n\) 项及之后的所有项都相等

  • 对于每一个 \(a_i\),满足 \(a_{i+1} \sim a_{i+a_i}\) 个数都相同。

问你有多少种方案 \(\bmod 10^9+7\)

T4 文章

  • 题意:给定一个长为 \(n\) 的数列 \(a\)\(m\) 次询问,每次给出 \(a_0\) 的值,求至少删去多少个数使任意位置的前缀和不为负数。(队测时加强了数据,数据为 \(1\le n\le 2\times 10^5,1\le m\le 2\times 10^5\)
  • 题解:洛谷可以 dp,队测只能贪心,只给出 dp 的题解
  • 代码

T5 命运记录 不会

T6 现充

  • 题意:有 \(n\) 个潘奕帆,每个潘奕帆有一个整数三观值。你需要实现一个数据结构,支持两种操作:

  • 1 pos val:将第 \(pos\) 个潘奕帆的三观值更新为 \(val\)

  • 2 l r:在区间 \([l \oplus cnt, r \oplus cnt]\) 内,判断是否存在两个潘奕帆的三观值之和等于一个固定的数 \(w\)。其中,\(\oplus\) 表示异或运算,\(cnt\) 是在此操作前,查询操作得到的 Yes 答案的个数。

\(m\) 次操作,对于每个查询操作,判断是否存在这样的两个潘奕帆。

  • 题解:暴力写好一点可以过,正解是线段树。
  • 代码
posted @ 2024-08-23 17:40  liukejie  阅读(4)  评论(0编辑  收藏  举报