NOIP20240820

NOIP20240820

T1 纸盒子

  • 题意:给你一个体积为 \(V(V=abc,a,b,c\in \mathbb N^*)\) 的纸盒子,求这个纸盒子的表面积 \(2\times(a\times b+a\times c+b \times c)\)\(\min\)
  • 题解:枚举 \(a,b\),即可求出 \(c\),和表面积 \(S\)
  • 代码

T2 Chmax Rush!

  • 题意:给定一个长度为 \(N\) 的数组 \(S\),初始时 \(S\) 的所有元素都是 \(0\)\(Q\) 次操作,每次操作我们有两个选择:
    • 将数组 \(S\) 的前 \(P_i\) 个元素(\(S_1, S_2, \dots, S_{P_i}\))全部替换为 \(V_i\),前提是这些元素没有任何一个 \(>V_i\)
    • 将数组 \(S\) 的从 \(P_i\) 开始到末尾的元素(\(S_{P_i}, S_{P_i+1}, \dots, S_N\))全部替换为 \(V_i\),前提是这些元素没有任何一个 \(>V_i\)
    • 我们需要计算可能的操作序列的总数,结果 \(\bmod 998244353\)
  • 题解:分类讨论
  • 代码

T3 |{floor(A_i/2^k)}|

  • 题意:给一个节点个数为 \(2^K-1\) 的满二叉树,第 \(i\) 节点有两个左右儿子,选择 \(n\) 个叶子节点(可重复)染黑,要求子树里存在黑点的点的个数最多。
  • 题解:递归
  • 代码

T4 假期

  • 题意:给定一组整数,表示周期性的节日。某一天所有节日同时发生,现在需要取消其中的 \(k\) 个节日,目的是使得剩余节日的周期之间的最小间隔最大。
  • 题解:二分加搜索加 dp
  • 代码

T5 包汤圆

  • 题意:有 \(n\) 个数,要求任意连续 \(m\) 个数中取两个数,求最小代价。
  • 题解:dp
    \(f_{i,j,k}\) 表示在到第 \(i\) 个数为止,上一次取的为第 \(i-j\) 个数,再上一个数的为第 \(i-k\) 个数的最小代价
    则状态转移方程为:

\[f_{i,0,j}=\min(f_{i-1,j-1,k}+val_i) \]

这个方程表示若选第 \(i\) 个数,则此时就变为上一次选的数为第 \(i\) 个汤圆,而再上一个数为第 \(i−j\) 个数,其中 $val_i $ 表示选第 \(i\) 个数的代价。

\[f_{i,1,k}=\min(f{i-1,i-1,k-1)} \]

这个方程表示若选第 \(i\) 个数,则此时就变为上一次选的数为第 \(i\) 个数,而再上一次选的数为第 \(i−j\) 个数。
记得滚动数组优化。

posted @ 2024-08-22 17:10  liukejie  阅读(5)  评论(0编辑  收藏  举报