Welcome to Liukejie's|

liukejie

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

NOIP20240820

NOIP20240820

T1 纸盒子

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

T2 Chmax Rush!

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

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

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

T4 假期

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

T5 包汤圆

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

fi,0,j=min(fi1,j1,k+vali)

这个方程表示若选第 i 个数,则此时就变为上一次选的数为第 i 个汤圆,而再上一个数为第 ij 个数,其中 vali 表示选第 i 个数的代价。

fi,1,k=min(fi1,i1,k1)

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

posted @   liukejie  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起