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

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

目录

  • T1. 书架
    • 思路分析
  • T2. 棋盘问题
    • 思路分析
  • T3. 课程表
    • 思路分析
  • T4. 拯救公主
    • 思路分析

T1. 书架

John 最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。

John 共有 N N N 头奶牛 ( 1 ≤ N ≤ 20 , 000 ) (1 ≤ N ≤ 20,000) (1N20,000),每头奶牛有自己的高度 H i   ( 1 ≤ H i ≤ 10 , 000 ) H_i\ (1 ≤ H_i ≤ 10,000) Hi (1Hi10,000) N N N 头奶牛的总高度为 S S S。书架高度为 B   ( 1 ≤ B ≤ S < 2 , 000 , 000 , 007 ) B\ (1 ≤ B ≤ S < 2,000,000,007) B (1BS<2,000,000,007)

为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险性越大。为了帮助 John 到达书架顶层,找出使用奶牛数目最少的解决方案吧。

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

  • 输入
    1 1 1 行:空格隔开的整数 N N N B B B
    2 ∼ N + 1 2\sim N+1 2N+1 行:第 i + 1 i+1 i+1 行为整数 H i H_i Hi
  • 输出
    能达到书架高度所使用奶牛的最少数目。
  • 样例输入
    6 40
    6
    18
    11
    13
    19
    11
    
  • 样例输出
    3
    

思路分析

此题考查贪心算法中的最优装载问题,属于入门题。

最优装载问题的贪心策略是优先装最重的物品,此处即优先让高度最高的奶牛参与叠罗汉,然后依次是第二高、第三高 …,直到高度足以达到书架高度即可,此时的奶牛数量即为最少。

/*
 * Name: T1.cpp
 * Problem: 书架
 * Author: Teacher Gao.
 * Date&Time: 2025/02/05 13:55
 */

#include <cstdio>
#include <algorithm>

using namespace std;

int main()
{
   
    int high[20005] = {
   0};
    int n , b, tot = 0, ans = 0;
    scanf("%d %d", &n, &b);

    for (int i = 1; i <= n; ++i) {
   
        scanf("%d", &high[i]);
    }

    sort(high + 1, high + n + 1);

    for (int i = n; i >= 1; i--) {
   
        tot += high[i];
        ++ans;
        if (tot >= b) break;
    }

    printf("%d\n", ans);

    return 0;
}

T2. 棋盘问题

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k k k 个棋子的所有可行的摆放方案 C C C

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

  • 输入
    输入含有多组测试数据。每组数据的第一行是两个正整数 n , k n, k n,k,用一个空格隔开,表示了将在一个 n × n

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

相关文章:

  • 记录 | WPF基础学习Style局部和全局调用
  • Android Studio 2024.2.2.13版本安装配置详细教程
  • 个人笔记---关于详解threadlocal 上下文环境存储的最佳数据类型
  • 凝思60重置密码
  • UE求职Demo开发日志#23 线性任务系统数据层实现
  • MySQL时间类型相关总结(DATETIME, TIMESTAMP, DATE, TIME, YEAR)
  • 《Kettle实操案例一(全量/增量更新与邮件发送)》
  • 深度学习-105-RAG技术之嵌入模型安装部署应用的三种方式
  • 初窥强大,AI识别技术实现图像转文字(OCR技术)
  • Mac下使用Docker安装CREMEB-PRO宝塔环境
  • 【Leetcode 每日一题】59. 螺旋矩阵 II
  • 广度优先搜索(BFS)算法详解——以走迷宫问题为例
  • 【JS】element-ui table展示勾选状态
  • AI工具——Cherry Studio,搭建满血DeepSeek R1的AI对话客户端
  • 【医院绩效管理专题】2.绩效管理:医院发展的核心驱动力
  • Jmeter接口自动化测试
  • ZIP完美解密解压缩和暴力破解最佳实现
  • python图片转字符画应用
  • Java 集合中的 `removeIf` 和 Stream API 的 `filter`
  • 4.Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片
  • 基于单片机的电子抢答器设计(论文+源码+实物)
  • Vue 3 30天精进之旅:Day 17 - 样式和动画
  • UE学习日志#24 C++笔记#10 内存管理1
  • linux——网络计算机{序列化及反序列化(JSON)(ifdef的用法)}
  • DeepSeek本地化部署
  • 【实战】excel分页写入导出大文件