首页
比赛
tracker
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
小红的口罩
20条解析
开通博客写题解
Lambda_L
发表于 2025-12-19 00:31:29
优先队列贪心要最大化使用天数,需每次选择当前不舒适度最小的口罩:初始时所有口罩的不舒适度为原始值,优先选最小的用(单日成本最低);用完后该口罩不舒适度翻倍,重新加入候选队列,下次仍选当前最小的。直到选择下一个口罩的不舒适度会导致总不舒适度超过k为止。数据结构选择使用小顶堆(优先队列) 维护当前所有口
展开全文
FoolBlade
发表于 2025-12-19 00:43:35
void solve(){ int n,k;cin>>n>>k; map<int,int> mp; for(int i=1;i<=n;i++){ int x;cin>>x; while(x&
展开全文
quchen666
发表于 2025-12-19 10:47:19
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n,k; int main() { cin>>n>>k; int sum = 0; prior
展开全文
ddb酱
发表于 2025-11-20 20:52:30
#include <bits/stdc++.h> using namespace std; #define endl "\n" #define all(a) a.begin(), a.end() using vi = vector<int>; void
展开全文
lotusor
发表于 2025-12-19 18:00:44
这题可以使用内置库中的优先队列来解决,我们知道优先队列中heap[0]为最小值,并且只需初始化一次,我们只需要每次提取min再将min修改后放回即可,正好符合本题的要求,关于优先队列的知识大家可以自行了解 import heapq n,k = map(int,input().split()) lis
展开全文
YE-OMAR
发表于 2021-12-04 21:13:33
#include<iostream> #include<queue> using namespace std; int main() { int n,k; cin>>n>>k; int a; priority_queu
展开全文
IA3000
发表于 2025-12-19 05:09:51
#include <iostream> #include <queue> using namespace std; int main() { int n,k,a,ans=0; priority_queue<int> pq; cin>
展开全文
YunBaichuan
发表于 2025-12-19 09:58:25
思路:我们每次要选择最小的不舒适度,那就可以把数组a建小根堆,然后不断模拟即可 代码: import sys from heapq import heapify, heappop, heappush input = lambda: sys.stdin.readline().strip() imp
展开全文
太上老监
发表于 2025-12-19 10:37:18
import java.util.Scanner; public class Main { public static void main(String[] args) { int n,k; Scanner in=new Scanner(System.in);
展开全文
olone
发表于 2025-12-19 10:40:13
#include<bits/stdc++.h> using namespace std; int n,k; priority_queue<int,vector<int>,greater<int>> q; int main() { cin
展开全文
查看本题
查看本题讨论
相关比赛
11218-牛客小白月赛41
进入比赛
24143-牛客小白月赛41内测
进入比赛
26486-新生大赛7
进入比赛
29497-第二周练习
进入比赛
35391-NBU Shiina Mashiro Test 2
进入比赛
等你来战
查看全部
牛客2025跨年场
报名截止时间:2026-01-01 00:05
牛客周赛 Round 125
报名截止时间:2026-01-04 21:00
2026牛客寒假算法基础集训营1
报名截止时间:2026-02-03 18:00
2026牛客寒假算法基础集训营2
报名截止时间:2026-02-05 18:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题