news 2026/6/10 13:14:36

小红的口罩【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小红的口罩【牛客tracker 每日一题】

小红的口罩

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

疫情来了,小红网购了n nn个口罩。
众所周知,戴口罩是很不舒服的。小红每个口罩戴一天的初始不舒适度为a i a_iai​。
小红有时候会将口罩重复使用(注:这是非常不卫生的!),每次重复使用时,该口罩的不舒适度会翻倍!
小红想知道,自己在不舒适度总和不超过k kk的情况下,最多能用现有的口罩度过多少天?

输入描述:

第一行输入两个正整数n nnk kk,分别代表口罩的总数、以及小红最多能忍受的不舒适度总和。
第二行输入n nn个正整数a i a_iai​ ,用空格隔开。分别代表每个口罩初始的不舒适度。
1 ≤ n ≤ 1 0 5 , 1 ≤ a i , k ≤ 1 0 9 1≤n≤10^5,1≤a_i,k≤10^91n105,1ai,k109

输出描述:

一个整数,代表小红最多能度过的天数。

示例1

输入:

2 30 2 3

输出:

5

说明:

第一天用第一个口罩,不舒适度为2 22
第二天用第一个口罩,不舒适度为4 44
第三天用第二个口罩,不舒适度为3 33
第四天用第二个口罩,不舒适度为6 66
第五天用第二个口罩,不舒适度为12 1212
总不舒适度为2 + 4 + 3 + 6 + 12 = 27 2+4+3+6+12=272+4+3+6+12=27,没有超过30 3030
可以证明,无论怎样分配,都无法度过6天且不舒适度总和不超过30 3030

示例2

输入:

3 5 7 6 8

输出:

0

说明:

显然,使用任何一个口罩都会使不舒适度超过5 55

解题思路

首先将所有口罩的初始不舒适度存入数组,构建小根堆(最小堆)以快速获取当前不舒适度最小的口罩,随后循环执行操作:若堆顶的口罩不舒适度不超过剩余可忍受的k kk,则扣除该值并将天数加1 11,接着将该口罩的不舒适度翻倍后重新推入堆中(维护堆的性质);若堆顶值超过k kk则停止循环,最终天数即为答案;该贪心策略通过每次选择当前最小的不舒适度,最大化可度过的天数,小根堆的p o p poppopp u s h pushpush操作时间复杂度为O ( l o g n ) O(logn)O(logn),适配n nn1 e 5 1e51e5k kk1 e 9 1e91e9的规模,无需复杂计算即可高效且精准地得到结果。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e5+10;vector<ll>a;intmain(){ll n,k;cin>>n>>k;ll res=0;a.resize(n);for(auto&x:a)cin>>x;make_heap(a.begin(),a.end(),greater<>());while(k>=a[0]){k-=a[0];res++;pop_heap(a.begin(),a.end(),greater<>());a.back()*=2;push_heap(a.begin(),a.end(),greater<>());}cout<<res<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 22:46:19

Gatus服务监控:5分钟快速上手指南

Gatus服务监控&#xff1a;5分钟快速上手指南 【免费下载链接】gatus ⛑ Automated developer-oriented status page 项目地址: https://gitcode.com/GitHub_Trending/ga/gatus 在当今微服务和云原生架构盛行的时代&#xff0c;服务监控已成为每个技术团队必须面对的挑战…

作者头像 李华
网站建设 2026/6/9 20:01:11

家庭自动化平台深度测评:Home Assistant、OpenHAB、Domoticz实战对比

家庭自动化平台深度测评&#xff1a;Home Assistant、OpenHAB、Domoticz实战对比 【免费下载链接】awesome-python-applications &#x1f4bf; 功能出色的免费软件&#xff0c;恰好也是开源的Python软件。 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-python…

作者头像 李华
网站建设 2026/6/9 5:28:58

优化移动端长列表滑动性能的实用解决方案

优化移动端长列表滑动性能的实用解决方案 【免费下载链接】vue-awesome-swiper &#x1f3c6; Swiper component for vuejs 项目地址: https://gitcode.com/gh_mirrors/vu/vue-awesome-swiper 随着移动互联网的快速发展&#xff0c;移动端应用中的长列表场景日益普遍。无…

作者头像 李华
网站建设 2026/6/10 4:23:24

终极解密!VVVVVV存档系统:从原理到实战的完整指南

你是否曾经在玩VVVVVV时不小心关闭游戏&#xff0c;结果发现辛辛苦苦收集的道具全都不见了&#xff1f;或者想要尝试一些特殊玩法&#xff0c;却苦于无法修改游戏进度&#xff1f;今天&#xff0c;咱们就来彻底揭开这款经典游戏存档系统的神秘面纱&#xff01; 【免费下载链接】…

作者头像 李华
网站建设 2026/6/1 2:33:28

Langchain-Chatchat时间轴生成:按时间顺序梳理发展历程

Langchain-Chatchat 时间轴生成&#xff1a;按时间顺序梳理发展历程 在企业知识管理日益复杂的今天&#xff0c;一个常见的难题是——员工明明知道公司制度文档里写过“试用期三个月”&#xff0c;却要在十几份PDF中翻找半小时。传统搜索引擎依赖关键词匹配&#xff0c;面对“新…

作者头像 李华