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)}|
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\) 个数。
记得滚动数组优化。