#小红的口罩--优先队列

题目:

链接:https://ac.nowcoder.com/acm/contest/65955/B链接:https://ac.nowcoder.com/acm/contest/65955/B

来源:牛客网

思路:

思路一:

结构:数组

函数:sort

构建一个数组储存不舒适度,按照从小到大的顺序排列,并且随着佩戴次数增多对数组元素进行翻倍处理。

代码:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
	int n, k, day = 0, sum = 0;
	int i, j;
	cin >> n >> k;
	vector<int>a(n);
	for (i = 0; i < n; i++)cin >> a[i];
	sort(a.begin(), a.end());
	sum = a[0];
	while (sum < k) {
		day++;
		cout << a[0] << endl;
		a[0] *= 2;
		sort(a.begin(), a.end());
		sum += a[0];
	}
	cout << day;
}

思路二:

结构:优先列表

函数:priority_queue

构建一个优先队列储存不舒适度,通过greater实现按照从小到大的顺序排列,并且随着佩戴次数增多对队列元素进行翻倍处理。

代码:

#include<iostream>
#include<queue>
using namespace std;
int main()
{
	int n, k;
	cin >> n >> k;
	priority_queue<int, vector<int>, greater<int>>q;
	for (int i = 0; i < n; i++)
	{
		int t;
		cin >> t;
		q.push(t);
	}
	int sum = q.top();
	int day = 0;
	while (sum < k) {
		day++;
		int temp = q.top();
		q.pop();
		q.push(2 * temp);
		sum += q.top();
	}
	cout << day;
}

#小红的口罩--优先队列#
全部评论

相关推荐

03-31 18:02
门头沟学院 Java
白日梦想家_等打包版:不要的哦佛给我
点赞 评论 收藏
分享
03-18 17:22
门头沟学院 Java
代码飞升:海投就完了,别管评论区那个sbb卖课的
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务