首页 > 小红的口罩
头像 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 展开全文