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

acwing 5283. 牛棚入住

题目 - 点击直达

  • 1. 5283. 牛棚入住
    • 1. 题目详情
      • 1. 原题链接
      • 2. 题目要求
      • 3. 基础框架
    • 2. 解题思路
      • 1. 思路分析
      • 2. 时间复杂度
      • 3. 代码实现

1. 5283. 牛棚入住

1. 题目详情

贝茜经营的牛棚旅店中有 a 个可供一头牛入住的小牛栏和 b 个可供两头牛入住的大牛栏。

初始时,所有牛栏都是空的。

已知,今天一共有 n 波奶牛依次前来入住,每波由 1∼2 头奶牛组成。

如果是一头奶牛前来入住,那么:

  • 如果有空着的小牛栏,则安排其在空着的小牛栏入住。
  • 如果没有空着的小牛栏,则安排其在空着的大牛栏入住。
  • 如果既没有空着的小牛栏,也没有空着的大牛栏,则安排其在仍未住满的大牛栏入住。
  • 如果上述都没有,则将其劝离。

如果是两头奶牛前来入住,那么:

  • 如果有空着的大牛栏,则安排它们在空着的大牛栏入住。
  • 如果没有空着的大牛栏,则将它们劝离。
  • 请你计算,一共有多少头奶牛会被劝离。

注意,问题是被劝离的奶牛具体数量,而不是波数。

1. 原题链接

acwing 5283. 牛棚入住

2. 题目要求

输入格式
第一行包含三个整数 n,a,b。

第二行包含 n 个整数 t1,t2,…,tn,其中 ti 表示第 i 波奶牛的数量。

输出格式
一个整数,表示被劝离的奶牛的具体数量。

数据范围
前 3 个测试点满足 1≤n≤5。
所有测试点满足 1≤n≤2×105,1≤a,b≤2×105,1≤ti≤2。

输入样例1:
4 1 2
1 2 1 1
输出样例1:
0
输入样例2:
4 1 1
1 1 2 1
输出样例2:
2

3. 基础框架

● Cpp代码框架

#include <iostream>
using namespace std;
int main(){return 0;
}

2. 解题思路

1. 思路分析

( 1 ) (1) (1) 小牛栏共有 a a a个,每个最多有 1 1 1头牛,小牛栏最多放 a a a头牛;
小牛栏有 2 2 2种状态:0头牛和1头牛,用一个变量 a 1 a1 a1表示小牛栏空闲的数量;
( 2 ) (2) (2) 大牛栏共有 b b b个,每个最多有 2 2 2头牛,大牛栏最多放 2 ∗ b 2*b 2b头牛;
大牛栏有 3 3 3种状态:0头牛、1头牛、2头牛,用变量b1表示大牛栏中空闲 1 1 1个栏位的数量, b 2 b2 b2表示空闲 2 2 2个栏位的数量;
( 3 ) (3) (3) 对于每一波来的牛,可能是 1 1 1头,也可能是 2 2 2头;
用变量 c n t cnt cnt记录劝离的牛数量;
用变量 f f f记录当前在等待入栏的牛的数量;
( 4 ) (4) (4) 来1头牛时:
判断 a 1 a1 a1,若 a 1 a1 a1不为0则表示小牛栏还有空位,不劝离,设置 f = 0 f=0 f=0;
判断 b 2 b2 b2,若 b 2 b2 b2不为0且 f = = 1 f==1 f==1则表示大牛栏有空位且该牛还在等待,不劝离,设置 f = 0 f=0 f=0 b 2 b2 b2自减1, b 1 b1 b1自增1;
判断 b 1 b1 b1,若 b 1 b1 b1不为0且 f = = 1 f==1 f==1则表示大牛栏有一个空位且该牛还在等待,不劝离,设置 f = 0 f=0 f=0 b 1 b1 b1自减1;
( 5 ) (5) (5) 来2头牛时:
判断 b 2 b2 b2,若 b 2 b2 b2不为0则表示大牛栏有空位,不劝离,设置 f = 0 f=0 f=0 b 2 b2 b2自减1;
( 6 ) (6) (6) f f f不为0说明此时本波到来的牛被劝离, c n t cnt cnt加上 f f f就是止至到本波被劝离的牛的数量;

2. 时间复杂度

O ( N ) O(N) O(N)
每波需要对到来的牛判断,共有n波,每波内的判断是常数次;

3. 代码实现

#include <iostream>
using namespace std;int main(){// 输入处理int n,a,b;cin >> n >> a >> b;int arr[n];for(int i = 0; i < n; ++i){int tmp;cin >> tmp;arr[i] = tmp;}// 逻辑处理int a1 = a;int b1 = 0;int b2 = b;int cnt = 0;for(int i = 0; i < n; ++i){if(arr[i] == 1){if(a1 != 0){a1--;arr[i] = 0;}if(b2 != 0 && arr[i] == 1){b2--;b1++;arr[i] = 0;}if(b1 != 0 && arr[i] == 1){b1--;arr[i] = 0;}}else{if(b2 != 0){b2--;arr[i] = 0;}}cnt += arr[i];}// 输出cout << cnt << endl;return 0;
}

相关文章:

acwing 5283. 牛棚入住

题目 - 点击直达 1. 5283. 牛棚入住1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. 5283. 牛棚入住 1. 题目详情 贝茜经营的牛棚旅店中有 a 个可供一头牛入住的小牛栏和 b 个可供两头牛入住的大牛栏。 初始时&#xff0c…...

Qt触摸屏双指缩放和单指移动界面(支持嵌入式设备)

本文介绍的QGraphicsView的双指缩放&#xff0c;QWidget更简单&#xff0c;可以参考当前内容。 方法一&#xff1a;&#xff08;QTouchEvent事件实现&#xff09; 使用场景&#xff1a;适用于paintevent绘制下的界面。 优点&#xff1a;不需要代码设置中心锚点&#xff08;锚点…...

【Linux】虚拟机安装Linux、客户端工具,MobaXterm的使用,Linux常用命令

目录 一&#xff0c;安装Linux的centos7版本 具体安装步骤&#xff1a; 二&#xff0c;Linux常见的命令&#xff1a; 三、安装客户端工具 1、介绍 2、安装MobaXterm 3、换源 四、拍照功能 一&#xff0c;安装Linux的centos7版本 介绍&#xff1a; 具体安装步骤&#…...

springboot-scanBasePackages包扫描

目录 原因&#xff1a; 方式一&#xff1a; 方式二&#xff1a; 原因&#xff1a; 由于对rocketMq进行了一次封装&#xff0c;mq模块里面引用了RocketMQTemplate的bean&#xff0c;如果只引入jar包的依赖&#xff0c;启动的时候不会报错&#xff0c;但是在调用到 RocketMQT…...

【C语言数据结构——————排序(1万字)】

文章目录 排序的概念 常见排序算法分类冒泡排序 时间复杂度稳定性 原理实现插入排序 时间复杂度稳定性实现选择排序 时间复杂度稳定性实现希尔排序 时间复杂度稳定性希尔排序的算法思想实现 优化快速排序 时间复杂度空间复杂度稳定性实现 三数取中优化归并排序 时间复杂度空间复…...

PyTorch基础(18)-- torch.stack()方法

一、方法详解 首先&#xff0c;看一下stack的直观解释&#xff0c;动词可以简单理解为&#xff1a;把……放成一堆、把……放成一摞。 有了对stack方法的直观感受&#xff0c;接下来&#xff0c;我们正式解析torch.stack方法。 PyTorch torch.stack() method joins (concaten…...

从lc560“和为 K 的子数组“带你认识“前缀和+哈希表“的解题思路

1 前缀和哈希表解题的几道题目&#xff1a;建议集中练习 560. 和为 K 的子数组&#xff1a;https://leetcode.cn/problems/subarray-sum-equals-k/ 1248. 统计「优美子数组」: https://leetcode.cn/problems/count-number-of-nice-subarrays/ 1249. 和可被 K 整除的子数组(利用…...

c:变参函数:汇编解析;va_list;marco 宏:__VA_ARGS__

文章目录 参考gcc 内部的宏定义代码汇编调用在 SEI CERT C Coding Standard 这个标准里示例实例宏里的使用 参考 https://git.sr.ht/~gregkh/presentation-security/blob/3547183843399d693c35b502cf4a313e256d0dd8/security-stuff.pdf gcc 内部的宏定义 宏定义&#xff1a;…...

eclipse安装教程(2021版)

第一步&#xff1a;下载JDK &#xff08;下载地址&#xff09; Java SE - Downloads 第二步 根据自己电脑的系统&#xff0c;选择相应的版本x64代表64位&#xff0c;x86代表32位。点击相应的JDK进行下载 点击之后会出现一个对话框 同意之后下载。(记住下载到哪&#xff0c;打…...

计算机网络重点概念整理-第二章 物理层【期末复习|考研复习】

第二章 物理层 【期末复习|考研复习】 计算机网络系列文章传送门&#xff1a; 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称&缩写 文章目录 第二章 物理层 【期末复习|考研复习…...

【计算机网络】从输入URL到页面都显示经历了什么??

文字总结 ① DNS 解析&#xff1a;当用户输入一个网址并按下回车键的时候&#xff0c;浏览器获得一个域名&#xff0c;而在实际通信过程中&#xff0c;我们需要的是一个 IP 地址&#xff0c;因此我们需要先把域名转换成相应 IP 地址。浏览器会首先从缓存中找是否存在域名&…...

[C++]——带你学习类和对象

类和对象——上 目录&#xff1a;一、面向过程和面向对象二、类的概念三、类的访问限定符和封装3.1 访问限定符3.2 封装 四、类的作用域五、类的实例化六、类的对象大小的计算七、类成员函数this指针7.1 this指针的引用7.2 this 指针的特性 目录&#xff1a; 类和对象是很重要…...

Docker多平台、跨平台编译打包

大多数带有Docker官方标识的镜像都提供了多架构支持。如&#xff1a;busybox镜像支持amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, and s390x。当你在amd64设备上运行容器时&#xff0c;会拉取amd64镜像。 当你需要构建多平台镜像时&#xff0c;可以用 --platf…...

LLM系列 | 22 : Code Llama实战(下篇):本地部署、量化及GPT-4对比

引言 模型简介 依赖安装 模型inference 代码补全 4-bit版模型 代码填充 指令编码 Code Llama vs ChatGPT vs GPT4 小结 引言 青山隐隐水迢迢&#xff0c;秋尽江南草未凋。 小伙伴们好&#xff0c;我是《小窗幽记机器学习》的小编&#xff1a;卖热干面的小女孩。紧接…...

Nginx的进程结构实例演示

可以参考《Ubuntu 20.04使用源码安装nginx 1.14.0》安装nginx 1.14.0。 nginx.conf文件中worker_processes 2;这条语句表明启动两个worker进程。 sudo /nginx/sbin/nginx -c /nginx/conf/nginx.conf开启nginx。 ps -ef | grep nginx看一下进程情况。 sudo /nginx/sbin/ng…...

【Nginx36】Nginx学习:SSI静态文件服务器端包含模块

Nginx学习&#xff1a;SSI静态文件服务器端包含模块 这个模块让我想到了 2009 年刚刚工作的时候。最早我是做 .NET 的&#xff0c;而第一家公司其实是从 ASP 向 ASP.NET 转型中&#xff0c;因此&#xff0c;还是有不少的 ASP 做的页面。在那个时候&#xff0c;就用到了 SSI 。 …...

StripedFly恶意软件框架感染了100万台Windows和Linux主机

导语 近日&#xff0c;一款名为StripedFly的恶意软件框架在网络安全研究人员的监视之外悄然感染了超过100万台Windows和Linux系统。这款跨平台的恶意软件平台在过去的五年中一直未被察觉。在去年&#xff0c;卡巴斯基实验室发现了这个恶意框架的真实本质&#xff0c;并发现其活…...

蓝桥杯每日一题2023.10.25

乘积尾零 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 由于需要相乘的数很多&#xff0c;所以我们不能直接进行暴力模拟&#xff0c;我们知道10 2 * 5&#xff0c; 所以我们只需要找出这个数2和5的个数&#xff0c;其中2和5个数小的那个则为末尾0出现的个数 #include<bi…...

【C++】详解map和set基本接口及使用

文章目录 一、关联式容器与键值对1.1关联式容器&#xff08;之前学的都是序列容器&#xff09;1.2键值对pairmake_pair函数&#xff08;map在插入的时候会很方便&#xff09; 1.3树形结构的关联式容器 二、set2.1set的基本介绍2.1默认构造、迭代器区间构造、拷贝构造&#xff0…...

如何学习 Linux 内核内存管理

Linux内核内存管理部分是Linux内核中第二复杂的部分&#xff0c;但也非常有趣。学习它的最佳方法就是阅读代码。但在不了解术语和当前 mm 部分到底发生了什么的情况下&#xff0c;显然不能随意开始阅读代码。因此&#xff0c;我想这样开始学习比较好&#xff1a; 了解当前的 LS…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...