当前位置: 首页 > article >正文

2022 年 12 月青少年软编等考 C 语言四级真题解析

目录

  • T1. 开餐馆
  • T2. 糖果
    • 思路分析
  • T3. 鸡蛋的硬度
    • 思路分析
  • T4. 山区建小学
    • 思路分析

T1. 开餐馆

此题为 2020 年 12 月四级第一题原题,见 2020 年 12 月青少年软编等考 C 语言四级真题解析中的 T1。

T2. 糖果

由于在维护世界和平的事务中做出巨大贡献,Dzx 被赠予糖果公司 2010 年 5 月 23 日当天无限量糖果免费优惠券。在这一天,Dzx 可以从糖果公司的 N N N 件产品中任意选择若干件带回家享用。糖果公司的 N N N 件产品每件都包含数量不同的糖果。Dzx 希望他选择的产品包含的糖果总数是 K K K 的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们。当然,在满足这一条件的基础上,糖果总数越多越好。Dzx 最多能带走多少糖果呢?注意:Dzx 只能将糖果公司的产品整件带走。

时间限制:7 s
内存限制:64 MB

  • 输入
    第一行包含两个整数 N   ( 1 ≤ N ≤ 100 ) N\ (1\le N\le 100) N (1N100) K   ( 1 ≤ K ≤ 100 ) K\ (1\le K\le 100) K (1K100)
    以下 N N N 行,每行 1 1 1 个整数,表示糖果公司该件产品中包含的糖果数目,不超过 1000000 1000000 1000000
  • 输出
    符合要求的最多能达到的糖果总数,如果不能达到 K K K 的倍数这一要求,输出 0 0 0
  • 样例输入
    5 7
    1
    2
    3
    4
    5
    
  • 样例输出
    14
    
  • 提示
    Dzx 的选择是 2 + 3 + 4 + 5 = 14 2+3+4+5=14 2+3+4+5=14,这样糖果总数是 7 7 7 的倍数,并且是总数最多的选择。

思路分析

此题考查动态规划中的背包问题,属于基础题。

容易想到定义 f i , j f_{i,j} fi,j 表示前 i i i 种糖果是否可以获得总数 j j j 颗糖果,然后从大到小遍历状态数组,找到最大且满足是 k k k 的倍数的 j j j 即为答案,但是糖果的总数最多为 1 0 8 10^8 108,会导致空间和时间超限。

根据题目描述,我们需要求出糖果总数是 k k k 的倍数的结果,于是我们可以只记录糖果总数在   m o d     k \bmod\ k mod k 的状态下可以获得的最大值,于是定义 f i , j f_{i,j} fi,j 表示前 i i i 种糖果在总数   m o d     k = j \bmod\ k = j mod k=j 的状态下可以获得的最大值,容易得到状态转移方程为
f i , j = max ⁡ { f i − 1 , j , f i − 1 , ( j − ( a i   m o d   k ) )   m o d   k + a i } f_{i,j} = \max\{f_{i-1,j}, f_{i-1, (j-(a_i\bmod k)) \bmod k} + a_i\} fi,j=max{ fi1,j,fi1,(j(aimodk))modk+ai}

此题询问的是恰好满足的情况,因此初始值为 f i


http://www.kler.cn/a/453379.html

相关文章:

  • Docker基础知识 Docker命令、镜像、容器、数据卷、自定义镜像、使用Docker部署Java应用、部署前端代码、DockerCompose一键部署
  • 单机和微服务的区别,微服务有什么问题?数据一致性问题怎么解决?幂等问题怎么解决?
  • c++ 类似与c# 线程 AutoResetEvent 和 ManualResetEvent的实现
  • FPGA自学之路:到底有多崎岖?
  • 【ES6复习笔记】Class类(15)
  • 【解决报错】AttributeError: ‘NoneType‘ object has no attribute ‘group‘
  • Goland 安装与使用
  • 请购单一直提示需求部门不能为空无法提交
  • 深入浅出 MyBatis | Mybatis 简洁、第一个Mybatis程序
  • Flutter开发HarmonyOS 鸿蒙App的好处、能力以及把Flutter项目打包成鸿蒙应用
  • 使用TimesFM 对车辆销售进行预测
  • 【深度学习环境】NVIDIA Driver、Cuda和Pytorch(centos9机器,要用到显示器)
  • 社区版Dify 轻松实现文生图,Dify+LLM+ComfyUI
  • Coroutine 基础三 —— 结构化并发(二)
  • 机器学习之PCA降维
  • 【开发问题记录】使用 Docker+Jenkins+Jenkins + gitee 实现自动化部署前端项目 CI/CD(centos7为例)
  • 优化SEO策略的长尾关键词研究与应用指南
  • Linux电源管理——CPU Hotplug 流程
  • Java中的异常处理机制
  • 力扣——102. 二叉树的层序遍历