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

蓝桥杯每日真题 - 第16天

题目:(卡牌)

题目描述(13届 C&C++ B组C题)

cec9af1a4a824a0bac9b0a01b9a634df.png

5a0dd429258d4e7a8372111a63f7bb4a.png 

解题思路:

  • 题目分析

    • n 种卡牌,每种卡牌的现有数量为 a[i],所需的最大数量为 b[i],还有 m 张空白卡牌。

    • 每次组装一套卡牌,需要满足每种卡牌各一张的需求,若某种卡牌不足,可以用空白卡牌替代。

  • 核心逻辑

    • 模拟构建套组的过程:

      • 优先使用 a[i] 中已有的卡牌;

      • a[i] 不足,尝试使用空白卡牌 m 补充;

      • 若既没有足够的 a[i],也没有空白卡牌 m 时,停止构建套组。

  • 模拟过程

    • 使用一个循环依次检查每种卡牌的需求。

    • 若当前可以满足所有需求,则增加已组装的套组数 r,否则结束循环。

代码实现(C语言):

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int a[200005];
int b[200005];
int main()
{int n,  i, r = 0, f = 1;long long int m;scanf("%d%d", &n, &m);for (i = 0; i < n; i++){scanf("%d", &a[i]);}for (i = 0; i < n; i++){scanf("%d", &b[i]);}while (f){for (i = 0; i < n; i++){if (a[i]){a[i]--;}else if (b[i] > 0 && m > 0){b[i]--;m--;}else{f = 0;break;}}if (f){r++;}}printf("%d", r);
}

得到运行结果:

4816684bbe5141cbb47feacf34112b28.png

代码分析: 

  • 输入处理

    • 读取 n(卡牌种类数)和 m(空白卡牌数)。

    • 读取两组数组 a(现有卡牌数量)和 b(每类卡牌最大需求)。

  • 模拟过程

    • 在每次循环中,逐一检查每种卡牌:

      • a[i] > 0,使用一张已有卡牌;

      • a[i] == 0m > 0,用一张空白卡牌补充;

      • 若两者都无法满足,结束循环。

    • 每成功完成一轮,增加套组数 r

  • 终止条件

    • 任意一种卡牌的需求无法满足,或空白卡牌数不足时,停止构建。

  • 复杂度分析

    • 时间复杂度:O(k * n),其中 k 是可以组装的最大套组数,n 是卡牌种类数。

    • 空间复杂度:O(n),用于存储数组 ab

难度分析

⭐️⭐️⭐️

 

总结

本题的解法是基于模拟的方法,逐步验证每套卡牌是否能完成。在实现中,逐一扣减卡牌需求,并动态更新空白卡牌的使用情况,最终统计完成的套组数。这种方式清晰且直观,非常适合解决需要严格满足条件的资源分配问题。

 

 

http://www.lryc.cn/news/487279.html

相关文章:

  • 基因组之全局互作热图可视化
  • 基于Lora通讯加STM32空气质量检测WIFI通讯
  • STM32 极速入门第一天基础拓展 驱动i2c屏幕 ( 使用PlatformIO开发STM32单片机 )
  • 【WPF】Prism学习(五)
  • RabbitMQ的基本概念和入门
  • Shell脚本6 -- 条件判断if
  • 经验笔记:从生成 SSH 密钥到成功连接测试(以Gitee为例)
  • Object.defineProperty和响应式
  • 前端web
  • DDNet 服务器配置教程 Linux 环境
  • Vue 2 —监视器实现动态切换表单属性值
  • Qt_day10_程序打包(完结)
  • golang通用后台管理系统09(系统操作日志记录)
  • 如何确保爬取的数据准确性和完整性?
  • 【java】JDK安装
  • 科技改变工作方式:群晖NAS安装内网穿透实现个性化办公office文档分享(1)
  • 基于Java Springboot甘肃旅游管理系统
  • 03-axios常用的请求方法、axios错误处理
  • 《天体》游戏配置要求介绍
  • 【企业级分布式系统】 Kafka集群
  • MySQL 中有哪几种锁?
  • kafka中节点如何服役和退役
  • HTML5实现剪刀石头布小游戏(附源码)
  • 集群聊天服务器(3)muduo网络库
  • 解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题
  • 【jvm】HotSpot中方法区的演进
  • Win10/11 安装使用 Neo4j Community Edition
  • Ubuntu 22.04 上快速搭建 Samba 文件共享服务器
  • JQuery 基础知识学习(详尽版)2024.11.17
  • Spring Validation参数校验